как добавить клик на круговой диаграмме с помощью achartengine - PullRequest
1 голос
/ 19 марта 2012

Я сделал круговую диаграмму с помощью achartengine, теперь я хочу установить команду щелчка, чтобы новое представление открывалось, когда пользователь нажимает на круговую диаграмму.другое представление для другого клина круговой диаграммы.Я пытался с iTouchHandler, но я не знаю, как справиться с прикосновением.я установил onClickEnabled (true) в рендере, но как мне заставить его слушать мои команды, пожалуйста помогите .. код приведен ниже ..

 import org.achartengine.ChartFactory;
 import org.achartengine.ITouchHandler;
 import org.achartengine.model.CategorySeries;
 import org.achartengine.renderer.DefaultRenderer;
 import org.achartengine.renderer.SimpleSeriesRenderer;
 import org.achartengine.tools.PanListener;
 import org.achartengine.tools.ZoomListener;

 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.storage.OnObbStateChangeListener;
 import android.view.MotionEvent;
 import android.view.View.OnClickListener;

 public class PieChart implements ITouchHandler 
{
public Intent getIntent(Context context) 
{
    double[] values = new double[] {12, 14, 11, 10,2};
    int[] colors = new int[] {Color.BLUE, Color.GREEN, Color.MAGENTA, Color.YELLOW, Color.CYAN};
    DefaultRenderer renderer = buildCategoryRenderer(colors);
    renderer.setLabelsTextSize(10);
    return ChartFactory.getPieChartIntent(context, buildCategoryDataset("Project budget", values), renderer,"pie");
  }
protected DefaultRenderer buildCategoryRenderer(int[] colors) {
    DefaultRenderer renderer = new DefaultRenderer();
    renderer.setBackgroundColor(Color.WHITE);
    renderer.setPanEnabled(false);
    renderer.setClickEnabled(true);
    renderer.getSelectableBuffer();
    renderer.setAntialiasing(true);
    renderer.setApplyBackgroundColor(true);
    renderer.setLegendTextSize(30);

    for (int color : colors) {
      SimpleSeriesRenderer r = new SimpleSeriesRenderer();
      r.setColor(color);
      r.setDisplayChartValues(false);

      renderer.addSeriesRenderer(r);
    }
    return renderer;
  }
protected CategorySeries buildCategoryDataset(String title, double[] values) {
    CategorySeries series = new CategorySeries(title);
    int k = 0;
    for (double value : values) {
      series.add("Project " + ++k, value);
    }

    return series;

}
public void addPanListener(PanListener arg0) {
    // TODO Auto-generated method stub

}
public void addZoomListener(ZoomListener arg0) {
    // TODO Auto-generated method stub

}
public boolean handleTouch(MotionEvent arg0) {
    // TODO Auto-generated method stub
    System.out.println("lskdflk");

    return false;
}
public void removePanListener(PanListener arg0) {
    // TODO Auto-generated method stub

}
public void removeZoomListener(ZoomListener arg0) {
    // TODO Auto-generated method stub

}
}

1 Ответ

0 голосов
/ 19 марта 2012

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

Но если это возможно, вы можете вместо этого создать диаграмму Просмотр , используяgetPieChartView() и вызовите setOnClickListener() в возвращенном виде.

...