内デビッドローソンのanswerが完璧で、何の石を残さない質問に答えるされていますトゥーン。しかし、私の状況では、fireglovesを使ってanswerがより有用であることがわかりました。実際に値を取得するためにFireglovesのソリューションを使ってEntry
オブジェクトを取得します。以下は私の問題を解決しましたが、このソリューションがハックされ、絶対に必要になるまではお勧めできませんことに注意してください何のためのコードです。クリーンな解決策が必要な場合は、David Rawsonの答えはすでにです。
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, Highlight h) {
final long selectionTime = System.currentTimeMillis();
final Highlight copyHighlight = h;
final Entry copyEntry = e;
final boolean[] isTapped = {false};
mChart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (!isTapped[0]) {
final long doubleTapTime = System.currentTimeMillis();
if (doubleTapTime - selectionTime < 300) {
if ((motionEvent.getX() <= copyHighlight.getDrawX() + 50
&& motionEvent.getX() >= copyHighlight.getDrawX() - 50)
&& (motionEvent.getY() <= copyHighlight.getDrawY() + 50
&& motionEvent.getY() >= motionEvent.getY() - 50)) {
if (copyEntry.getX() == 1.0f && copyEntry.getY() == 1.0f) {
Toast.makeText(MainActivity.this, "1,1", Toast.LENGTH_SHORT).show();
} else if (copyEntry.getX() == 2.0f && copyEntry.getY() == 2.0f) {
Toast.makeText(MainActivity.this, "2,2", Toast.LENGTH_SHORT).show();
} else if (copyEntry.getX() == 3.0f && copyEntry.getY() == 3.0f) {
Toast.makeText(MainActivity.this, "3,3", Toast.LENGTH_SHORT).show();
}
}
}
}
isTapped[0] = true;
return false;
}
});
}
@Override
public void onNothingSelected() {
}
});
上記のコードは私がダブルタップされた点に関連していたEntry
オブジェクトを操作できます。また、私は脂肪指のタッピングの便利さのためにダブルタップされている間に100ピクセルの範囲を設定しました。
Entry
データを取得しながら値をダブルタップするクリーンなソリューションがあるかどうかを知りたいと思います。
すてきで便利なソリューション、ありがとう:) – firegloves