2015-04-15 3 views
4

Кто-нибудь знает, как сбросить выбранный элемент в MPAndroid Charts - PieChart? я должен быть в состоянии нажать на один пункт, например «десять tousand» раз, но каждый второй раз он дает мне onNothingSelected() события не onValueSelected()Как сбросить выбор после выбора элемента в PieChart

мне нужно вызывать только onValueSelected() событие ,

Может кто-нибудь помочь?

Спасибо

ответ

1

Это в документации: https://github.com/PhilJay/MPAndroidChart/wiki/Interaction-with-the-Chart

Внутри вашего метода onValueSelected() вызовите

chart.highlightValues(null); 

отменить все выделение.

+0

Это только ясное выделение, но мне нужно отменить его. Если я нажму на него, вызывается onValueSelected(), но если я нажму на него второй раз, вызывается onNothingSelected(), но мне нужно снова onValueSelected() –

+0

Затем вызовите onValueSelected() из onNothingSelected() –

+0

onNothingSelected не имеет входных параметров, мне они нужны в onValueSelected –

1

Я не знаю, решили ли вы свою проблему. Но, в случае, если кто-то есть та же проблема, вот одно решение с помощью столбчатых диаграмм:

// global variables 
protected static Entry entry; 
protected static int index; 
protected static Highlight highlight; 

// function where the listener is defined 
protected void manipulateChart(){ 

    final BarChart mChart = (BarChart) findViewById(R.id.your_chart); 

    // listener 
    mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() { 
     @Override 
     public void onValueSelected(Entry e, int dataSetIndex, Highlight h) { 
       // set global variables 
       entry = e; 
       index = dataSetIndex; 
       highlight = h; 
       // ... your code ... 
      } 
     } 

     @Override 
     public void onNothingSelected() { 
      onValueSelected(entry, index, highlight); 
     } 
    }); 

    mChart.highlightValues(null); 
} 
+0

Это должно быть принято. Это единственное решение, которое действительно работает! Спасибо, что поделился! –

3

Ничего себе, я действительно хотел ответ и .. наконец, я решил эту проблему.

Ответ очень прост.

chart.getOnTouchListener().setLastHighlighted(null);  
chart.highlightValues(null); 

Перед установкой highlightValues ​​как null, вам также необходимо инициализировать последнее затронутое выделенное значение!

Смежные вопросы