Imagebutton programmatisch erstellen

Ich möchte mehrere ImageButtons programmgesteuert erstellen. Ich kann sie erstellen, aber der Click-Event-Listener erhält weiterhin dieselbe Ansicht (Button 2), unabhängig davon, ob ich auf Button 0, Button1 oder Button 2 klicke.

    RelativeLayout gameBoard = (RelativeLayout) findViewById(R.id.RelGameboard);

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.CENTER_IN_PARENT,1);

    for(int i = 0 ; i <  3 ; i++)
    {

        ImageButton btnGreen = new ImageButton(this);
        btnGreen.setImageResource(R.drawable.bola_verde);
        btnGreen.setLayoutParams(lp);
        btnGreen.setOnClickListener(mGreenBallOnClickListener);
        btnGreen.setBackgroundColor(Color.TRANSPARENT); 
        btnGreen.setTag(i);
        btnGreen.setId(i);

                    gameBoard.addView(btnGreen);


     }'

Klicken Sie auf den Ereignis-Listener:

private View.OnClickListener mGreenBallOnClickListener = new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        //check which green ball was clicked
        ImageButton imgBtn = (ImageButton) v;

    Log.i("greeny","Clicked on green ball->"+imgBtn.getTag()+" v.ID->"+v.getId());
    }
};

Wenn ich auf eine Bildschaltfläche klicke, bekomme ich: Klicken Sie auf die grüne Kugel-> 2 v.ID-> 2

Die Tasten befinden sich an verschiedenen Positionen (ich habe für jede eine andere Polsterung festgelegt, aber um den Code zu vereinfachen, habe ich ihn nicht hier eingefügt)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage