私は小さな問題があります。私は、xAxisがカテゴリを表すBarChartsとyAxis - costのlistViewを作成しようとしています。ValueFormatter throws IndexOutOfBoundsException
ここは私のデータです。 エントリ
entries.add(new BarEntry(xAxis, cost, categoryName));
X軸はチャートのジャストの位置で、私は3番目のパラメータとして、カテゴリ名を置きます。それから私はその後、アダプタにIが値フォーマッタ
BarData data = getItem(position);
...
xAxis.setValueFormatter(new MyValueFormatter(data.getDataSetByIndex(0)));
を設定し、MyValueFormatterに、私はエントリからカテゴリ名を取得し、X軸値として設定しようとしているBarData
ArrayList<BarData> months = new ArrayList<>();
BarDataSet set = new BarDataSet(entries, monthName);
ArrayList<IBarDataSet> dataSets = new ArrayList<>();
dataSets.add(set);
BarData barData = new BarData(dataSets);
months.add(barData);
の配列リストにそれを置きます。
public class MyValueFormatter implements IAxisValueFormatter {
private IBarDataSet mDataSet;
public StatisticByMonthValueFormatter(IBarDataSet data) {
mDataSet = data;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
return (String) mDataSet.getEntryForIndex((int) value).getData();
}
}
この中華鍋、私は、リストビューをスクロールしていたときに、時々私は私が知っている
java.lang.IndexOutOfBoundsException: Invalid index 4, size is 2.
を取得し、そのバグMyValueFormatterでgetFormattedValue方法で、しかし、私は私が修正できる方法を理解していませんこれ、またはこれを正しい方法でどのように実装するのか?
感謝をjavadoc for DataSetを参照してください、今では正常に動作します。しかし、私のMPChartのバージョンでは、getEntryXPosメソッドはありません。代わりにgetEntryForXValueを使用しました。 –
@Alexandr私はあなたの問題を解決してうれしいです。あなたは答えを受け入れることができます(緑色のダニ) –