2016-08-03 18 views
1
public class YourValueFormatter : IValueFormatter 
{ 


    public IntPtr Handle 
    { 
     get; 
    } 
    public void Dispose() 
    { 
     throw new NotImplementedException(); 
    } 



    private DecimalFormat mFormat; 

    public YourValueFormatter() { 
     mFormat = new DecimalFormat("###,###,###"); // use no decimals 
    } 

    public String GetFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) { 

     // This method never called. 
     return Math.Round(value)+""; 
    } 


} 

Dies ist, wie ich es Formatierer auf Dataset wie dieseWie Prozent des Balkendiagramms in MPAndroidChart Xamarin runden?

dataset.ValueFormatter=new YourValueFormatter(); 

Versuchte zu setzen versucht

data.SetValueFormatter(new YourValueFormatter()); 

auch in vielerlei Hinsicht Daten setze aber nichts für mich immer Arbeit.

Ich mag wie bar Wert runden diese

2,00 bis 2% (Vordefinierte Prozentsatz Formatierer Format wie dieses 2,0%, aber ich brauche 2%)

oder

420,0-420

Lib Version: 2.2.3.2

Antwort

3

Sie müssen von Java.Lang.Object erben, wenn Sie Java Interfa implementieren ces.If Sie einen Blick auf die Build-Ausgabe haben, werden Sie feststellen, so etwas wie:

Typ ‚YourValueFormatter‘ implementiert IValueFormatter aber von java.lang.Object nicht erben. Es wird nicht unterstützt.

Correct

public class YourValueFormatter : Java.Lang.Object, IValueFormatter 
{ 
    private DecimalFormat mFormat; 

    public YourValueFormatter() { 
     mFormat = new DecimalFormat("###,###,###"); // use no decimals 
    } 

    public String GetFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) 
    { 
     // This method never called. 
     return Math.Round(value)+""; 
    } 
} 

Ihre GetFormattedValue sollte nun aufgerufen.

+0

Vielen Dank, es hat funktioniert :) –