我正在使用大量可点击的ImageButtons制作应用程序(准确地说是116)。我的问题已经存在:如何在一个循环中声明所有按钮?此外,所有按钮都会导致相同的视图,但我需要点击按钮的ID。 这就是我所拥有的:
public void addListenerOnImageButtons() {
for(int i = 1; i <= 116; i++) {
final Context context = this;
String buttonID = "imgbutton_"+i;
int resID = getResources().getIdentifier(buttonID,"id",getPackageName());
imageButton[i] = (ImageButton) findViewById(resID);
imageButton[i].setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, DetailsActivity.class);
startActivity(intent);
}
});
}
}
我的按钮被称为“imgbutton_1”,“imgbutton_2”,...,“imgbutton_116”,并在文件“detail_layout.xml”中声明。 当然,我可以通过每个按钮,但我相信有一个更优雅的解决方案:)
提前致谢!
答案 0 :(得分:1)
使用HashMap<Integer, ImageButton> map = new HashMap<Integer, ImageButton>();
并使用ID作为密钥
for(int i = 1; i <= 116; i++) {
final Context context = this;
String buttonID = "imgbutton_"+i;
int resID = getResources().getIdentifier(buttonID,"id",getPackageName());
ImageButton imageButton = (ImageButton) findViewById(resID);
map.put(resID, imageButto);
imageButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, DetailsActivity.class);
startActivity(intent);
}
});
}