Ich habe einige Tasten mit den folgenden Zeilen hinzugefügt:Wie bekomme ich OnClick() von programmatisch hinzugefügten Schaltflächen?
for (int i=0; i<XML.size(); i++) {
//add button
ToggleButton b = new ToggleButton(this);
// Setting the parameters
lefttextv.setLayoutParams(lleft);
b.setLayoutParams(bright);
//customize button
b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// Adding to the RelativeLayout as a child
layouth.addView(lefttextv);
layouth.addView(b);
id_button++;
}
Aber wie kann ich die OnClick() Methoden für diejenigen bekommen? Ich implementierte bereits View.OnClickListener mit dieser Methode:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId())
{
case id_button: Log.d("Button 0","Button 0 pressed);
break;
}
}
Aber das funktioniert nicht, wie bekomme ich die Id?
Ist 'id_button' immer 0? Wenn nicht, warum suchen Sie in der 'case'-Anweisung nach 0? Überlege, beim nächsten Mal keine magischen Konstanten zu verwenden. –
musst du setOnClickListener nicht irgendwann aufrufen? (auch setId tut nichts, denke ich) – njzk2
Die Erstellung der Schaltflächen erfolgt in einer For-Schleife und es werden mehr als eine Schaltfläche erstellt. –