2012-03-19 71 views
1

我在achartengine的帮助下制作了一个饼图,现在我想设置点击命令,以便在用户点击饼图时打开一个新视图。对不同楔形饼图的不同观点。我试着用iTouchHandler,但我不知道如何处理触摸。我已经在渲染器设置onClickEnabled(真),但怎么我让它听我的命令,请帮助..代码如下..如何使用achartengine添加点击饼图

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 

} 
} 

回答

0

我不知道你怎么可以添加一个点击监听器以图表活动

但如果可能的话,你可以改为创建图表查看使用​​3210并在返回查看通话setOnClickListener()