can';t在AndroidPlot中显示x轴上的所有字符串值
我无法在AndroidPlot中显示x轴上的所有字符串值 我只能显示这12个值中的10个值: 字符串[]标签={“Ahmed”、“Mohammed”、“tarek”、“alaa”、“mai”、“sahar”、“fares”, “阿德尔”、“奥马尔”、“马哈茂德”、“塔默”、“阿里”} 未显示alaa和omar 我使用以下代码:can';t在AndroidPlot中显示x轴上的所有字符串值,android,string,androidplot,Android,String,Androidplot,我无法在AndroidPlot中显示x轴上的所有字符串值 我只能显示这12个值中的10个值: 字符串[]标签={“Ahmed”、“Mohammed”、“tarek”、“alaa”、“mai”、“sahar”、“fares”, “阿德尔”、“奥马尔”、“马哈茂德”、“塔默”、“阿里”} 未显示alaa和omar 我使用以下代码: private class GraphXLabelFormat extends Format { String[] Labels = {"Ah
private class GraphXLabelFormat extends Format {
String[] Labels = {"Ahmed", "Mohammed", "tarek", "alaa", "mai","sahar", "fares",
"adel","omar", "mahmoud","tamer","ali"};
@Override
public StringBuffer format(Object object, StringBuffer buffer, FieldPosition field)
{
int parsedInt = Math.round(Float.parseFloat(object.toString()));
String labelString = Labels[parsedInt];
buffer.append(labelString);
return buffer;
}
@Override
public Object parseObject(String string, ParsePosition position) {
return java.util.Arrays.asList(Labels).indexOf(string);
}
}
在onCreate方法中,我制作:
plot.getGraphWidget().setDomainValueFormat(new GraphXLabelFormat());
最初在中答复,但为了方便起见,重新发布在此处:
可能是由于数据集中的点数和标签大小不相等而导致的舍入问题[]。如果像这样在format(…)实现中添加一些日志记录,那么问题应该变得很明显:
@Override
public StringBuffer format(Object object, StringBuffer buffer, FieldPosition field)
{
Log.d(TAG, "raw input: " + object.toString());
int parsedInt = Math.round(Float.parseFloat(object.toString()));
Log.d(TAG, "parsed input: " + parsedInt);
String labelString = Labels[parsedInt];
buffer.append(labelString);
return buffer;
}
此外,toString()的这种用法似乎有点奇怪:
int parsedInt = Math.round(Float.parseFloat(object.toString()));
看起来有点奇怪。我建议将这一行改为:
int parsedInt = Math.round(((Number) object).floatValue());