Android Wie erstelle onClick-events im Canvas-Bereich onDraw-Methode

ich gesucht habe um und immer noch keine gute Antwort. Ich habe meine eigene Klasse, die Sie erweitert eine Bildansicht und in der onDraw () - Methode bin ich mit canvas zu zeichnen Kreise auf meinen Bild.

Was ich jetzt machen möchte, ist aber ziehen Sie eine Schaltfläche auf das Bild in verschiedenen Orten und haben ein onClick-Ereignis für Sie, so, wenn der Benutzer die Taste drückt, öffnet sich eine neue Aktivität..

Hier ist was ich habe, so weit..Es zieht die buttons in der richtigen Lage, außer meine onClick-Methode nicht feuern

@Override
protected void onDraw(Canvas canvas){
    super.onDraw(canvas);

        //1.arrayList Points. 2.arrayLists for points in X, 3.arrayList for points in Y
        for(int i=0; i<arrayListPoints.size(); i++){


             Button b = new Button(mContext);
             LinearLayout ll = new LinearLayout(mContext);
             LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
             layoutParams.setMargins(alPoints_x.get(i), alPoints_y.get(i), 0, 0);

             ll.addView(b, layoutParams);

            //Measure and layout the linear layout before drawing it
             ll.measure(MeasureSpec.getSize(ll.getMeasuredWidth()), MeasureSpec.getSize(ll.getMeasuredHeight()));
             ll.layout(0, 0, MeasureSpec.getSize(b.getMeasuredWidth()), MeasureSpec.getSize(b.getMeasuredHeight()));
             //Finally draw the linear layout on the canvas
             ll.draw(canvas);


            //create an onClick event for the button
            b.setOnClickListener(new OnClickListener() {
                 @Override
                 public void onClick(View v) {

                     Toast msg = Toast.makeText(mContext, "button clicked \n", Toast.LENGTH_LONG);
                     msg.show(); 

                 } //end of public void

            });

        }


    invalidate();   

}   //end of onDraw()
Sie sollten nicht zu nehmen setOnClickListener() in onDraw(). Sie sollte in onCreate().
ich habe nicht gesehen, dass onCreate() in einer Klasse, die Sie erweitert eine Bildansicht..ich glaube nicht, Sie können

InformationsquelleAutor Mr X | 2011-07-27

Schreibe einen Kommentar