Dynamisch ImageButtons erstellen und hinzufügen zum layout mit OnClickListeners
Ich versuche, dynamisch und programmgesteuert erstellen ImageButtons und fügen Sie Sie zu meiner Scrollen LinearLayout. Ich habe in der Lage gewesen, um Sie hinzuzufügen, aber wenn ich versuche, um onClickListeners
Ihnen, alle Ihre anzeigen-ID, s -1; daher nicht in der Lage, um herauszufinden, auf welche Schaltfläche geklickt wurde.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OnClickListener imageClickListener;
imageClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
System.out.println("id clicked: " + v.getId());
}
};
for (int i = 0; i<images.length; i++)
{
LinearLayout il = new LinearLayout(this);
il.setOrientation(LinearLayout.HORIZONTAL);
il.setMinimumHeight(LayoutParams.WRAP_CONTENT);
il.setMinimumWidth(LayoutParams.WRAP_CONTENT);
int imageid = 0;
ImageButton ib;
BitmapDrawable imagebd;
imageid = getResources().getIdentifier("drawable/" + images[i], null, getPackageName());
imagebd = resizeImage(imageid);
ib = new ImageButton(this);
ib.setClickable(true);
ib.setOnClickListener(imageClickListener);
ib.setImageDrawable(imagebd);
ib.setMinimumHeight(size);
ib.setMinimumWidth(size);
ib.setMaxHeight(size);
ib.setMaxWidth(size);
imageButtons.add(ib);
il.addView(ib);
System.out.println("id: " + ib.getId());
ll.addView(il);
}
this.setContentView(sv);
}
- Warum nicht rufen Sie ib.setId(i) ? Wenn Sie möchten, eine id zu können, definieren Sie beim erstellen der image-Taste!
- Danke! Wusste nicht, Sie könnten sich Ihre eigene id.. Wenn du in deinem Kommentar die richtige Antwort werde ich akzeptieren Sie für Sie.
- lb.setId(i);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht rufen Sie
ib.setId(i)
?Wenn Sie möchten, eine id zu können, definieren Sie beim erstellen der image-Taste!
Versuchen, diese