Chcę programowo utworzyć kilka przycisków ImageButtons. Jestem w stanie je stworzyć, ale słuchacz odbiera zdarzenia click utrzymuje ten sam pogląd przycisk (2), czy mogę kliknąć na przycisk 0, Button1 lub przycisk 2.Tworzenie programowalnie Imagebutton
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);
}'
Kliknij wydarzenie słuchacza:
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());
}
};
Dla każdego narysowanego przycisku grafiki, gdy kliknę przycisk I get: Kliknięto zieloną kulkę-> 2 v.ID-> 2
Przyciski znajdują się w różnych pozycjach (dla każdego z nich ustawię różne wypełnienia, ale w celu uprość kod, którego tutaj nie umieściłem)
Niestety ja uproszczony kod i ukryć Podkładki że ustawiony po tej definicji. Przyciski znajdują się w różnych miejscach. – TranT