Android 数百个按钮的替代品

Android 数百个按钮的替代品,android,button,Android,Button,我要写一些android应用程序,它基本上由两个活动组成。所以第一个应该有很多按钮(100+),点击其中任何一个,我就会得到一些特殊的id,然后转到第二个活动。但是,是否有其他方法可以声明数百个按钮,并将一段代码复制/粘贴到每个按钮上,设置几乎相同的onClickLister?有什么特别的建筑吗?谢谢 编辑:每个按钮实际上都从1到n进行索引。然后单击第二个活动将启动,并获取该索引以显示它。我基本上不能使用任何微调器或smth其他,因为将有3行可点击的东西,每个都带有不同的图像 编辑2:所以,为了

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


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


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

您应该使用
列表视图

ListView非常适合同时处理许多项。它们对用户来说也是自然的。此外,您只需单击一次侦听器-
OnItemClickListener


在中有一个关于如何使用ListView的有用示例。

调用该方法以添加按钮

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;
    }           
}

您可以在代码中添加按钮,如下所示:

@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(){
        });
    }
}
@覆盖
创建时的公共void(Bundle savedInstanceState){
/*你的代码在这里*/
GroupView gw=findViewById(R.id.pnlButtonscontainer);//查找面板以添加按钮

对于(int i=0;i“我基本上不能使用任何微调器或smth其他工具,因为将有3行可单击的内容,每个都带有不同的图像”--使用
GridView
。请向我们提供您的应用程序用途的完整描述。可能100个按钮是实现此目的的方法,但可能不是,如果您解释用途而不是机制,我们将能够说。祝您好运。
@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(){
        });
    }
}