我要写一些Android应用程序,它基本上由两个活动组成。所以首先应该有很多按钮(100+)并且点击其中任何一个我将获得一些特殊ID并转移到第二个活动。但有没有其他方法可以声明数百个按钮并将一段代码复制/粘贴到每个按钮上设置几乎相同的onClickLister?有什么特别的建筑吗?感谢
编辑:每个按钮实际上都是从1到n的索引。在点击第二个活动将启动并获得该索引以显示它。我基本上不能使用任何微调器或其他东西,因为会有3行可点击的东西,每个都有不同的图像
编辑2:所以,为了给你一个想法,当你真正选择你想要玩的关卡时,我会去做一些像愤怒的小鸟菜单中的按钮表。因此,点击后,您将获得按钮的ID并开始第二个活动
答案 0 :(得分:1)
您应该使用ListView
。
ListViews非常适合同时处理大量项目。它们对用户来说也很自然。此外,您只使用一个点击监听器 - OnItemClickListener
。
有一个关于如何在Android Referenence中使用ListViews的有用示例。
答案 1 :(得分:1)
调用方法添加按钮
private void addButton(){
LinearLayout view = (LinearLayout) findViewById(R.id.linear_layout_id_here);
Button btn = null;
int w = 50;
int h = 25;
for(int i=1; i<100; i++) {
btn = new Button(this);
btn.setLayoutParams(new LayoutParams(w,h));
btn.setText("button " +i);
btn.setTag(""+i);
btn.setOnClickListener(onClickBtn);
view.addView(btn);
btn = null;
}
}
调用此方法处理onclick on按钮
private View.OnClickListener onClickBtn = new View.OnClickListener() {
public void onClick(View view) {
final int tag = Integer.parseInt(view.getTag().toString());
switch (tag) {
case 1:
// Do stuff
break;
case 2:
// Do stuff
break;
default:
break;
}
}
};
答案 2 :(得分:0)
您可以在代码中添加按钮,如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
/*your code here*/
GroupView gw =findViewById(R.id.pnlButtonscontainer); //find the panel to add the buttons
for(int i=0; i<100; i++) {
Button b = new Button(this);
b.setLayoutParameters(new LayoutParameters(w,h));
b.settext = i+"";
b.setOnClickListener(new OnClickListener(){
});
}
}
我直接编码到浏览器中,因此我的代码中可能会出现一些语法错误,但这是添加100个按钮的一种方式,而不是唯一的方法。