Android: интерактивная круговая диаграмма

Мне нужно круговую диаграмму для моего приложения, чтобы отобразить некоторые данные в разных разделах. круговая диаграмма готова, и она также работает нормально, но мне нужно событие, реагирующее на нажатия, когда оно касается определенного раздела круговой диаграммы. Пожалуйста, дайте мне знать код. Спасибо заранее. это мой код Android

  public class PieActivity extends Activity 
{
/** Called when the activity is first created. */
float values[]={300,700,100,500};

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    LinearLayout linear=(LinearLayout) findViewById(R.id.linear);
    values=calculateData(values);
    linear.addView(new MyGraphview(this,values));

}
private float[] calculateData(float[] data)
{
    // TODO Auto-generated method stub
    float total=0;
    for(int i=0;i<data.length;i++)
    {
        total+=data[i];
    }
    for(int i=0;i<data.length;i++)
    {
    data[i]=360*(data[i]/total);            
    }
    return data;

}
public class MyGraphview extends View
{
    private Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);
    private float[] value_degree;
    private int[] COLORS={Color.BLUE,Color.GREEN,Color.GRAY,Color.CYAN,Color.RED};
    RectF rectf = new RectF (10, 10, 200, 200);
    int temp=0;
    public MyGraphview(Context context, float[] values) {

        super(context);
        value_degree=new float[values.length];
     //   System.out.println("values"+value_degree);
        for(int i=0;i<values.length;i++)
        {
            value_degree[i]=values[i];
            System.out.println("degree"+value_degree[i]);
        }
    }
    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);

        for (int i = 0; i < value_degree.length; i++) {//values2.length; i++) {
            if (i == 0) {
                paint.setColor(COLORS[i]);
                canvas.drawArc(rectf, 0, value_degree[i], true, paint);
            } 
            else
            {
                    temp += (int) value_degree[i - 1];
                    paint.setColor(COLORS[i]);
                    canvas.drawArc(rectf, temp, value_degree[i], true, paint);
            }
        }
    }

}
}

Ответы на вопрос(1)

Ваш ответ на вопрос