数百个按钮的替代品

时间:2012-04-22 08:56:27

标签: android button

我要写一些Android应用程序,它基本上由两个活动组成。所以首先应该有很多按钮(100+)并且点击其中任何一个我将获得一些特殊ID并转移到第二个活动。但有没有其他方法可以声明数百个按钮并将一段代码复制/粘贴到每个按钮上设置几乎相同的onClickLister?有什么特别的建筑吗?感谢

编辑:每个按钮实际上都是从1到n的索引。在点击第二个活动将启动并获得该索引以显示它。我基本上不能使用任何微调器或其他东西,因为会有3行可点击的东西,每个都有不同的图像

编辑2:所以,为了给你一个想法,当你真正选择你想要玩的关卡时,我会去做一些像愤怒的小鸟菜单中的按钮表。因此,点击后,您将获得按钮的ID并开始第二个活动

3 个答案:

答案 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个按钮的一种方式,而不是唯一的方法。