使用 Eclipse 的 Android 应用程序 - 创建按钮数组

Posted

技术标签:

【中文标题】使用 Eclipse 的 Android 应用程序 - 创建按钮数组【英文标题】:Android App using Eclipse - Creating a button array 【发布时间】:2015-04-07 07:52:26 【问题描述】:

我正在编写一个应用程序,它需要在一个布局中包含 86 个小方形按钮 - 最好是 6 列。我想引用按钮以根据按下的按钮显示不同的图像。我使用相对布局>滚动视图(在 XML 中),然后是 86 个单独的按钮,对它进行了艰难的编码,但这似乎是一个业余的解决方案。

谁能告诉我如何以正确的方式直接在 Java 类中编写一组具有不同 ID 的相同按钮? (顺便说一句,我已经努力在谷歌上找到这个答案,但是当我搜索这个问题的变体时,我总是会得到关于 JButtons 的教程,我认为这些教程不能在 android 应用程序中使用)。

提前致谢。

【问题讨论】:

【参考方案1】:

这可能会有所帮助

public class Test extends Activity

List<Button> buttonList;

@Override
protected void onCreate(Bundle savedInstanceState) 
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buttonList=new ArrayList<Button>();
    Button doneButton=(Button)findViewById(R.id.your_final_button);
    ScrollView view=(ScrollView)findViewById(R.id.your_scroll_view);
    view.addView(tableLayout(20));//20 rows
    doneButton.setOnClickListener(new OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub
            for(Button b : buttonList)
                b.getText();//whatever you wanna do
            

        
    );


private TableLayout tableLayout(int count) 
    TableLayout tableLayout = new TableLayout(this);
    tableLayout.setStretchAllColumns(true);
    tableLayout.setBackgroundColor(Color.WHITE);
    int noOfRows = count ;
    for (int i = 0; i < (noOfRows+1); i++) 
        int rowId = 3 * i;
        tableLayout.addView(createOneFullRow(rowId));
    

    return tableLayout;


private TableRow createOneFullRow(int rowId) 
    TableRow tableRow = new TableRow(this);
    tableRow.setPadding(0, 10, 0, 0);
    //6 columns
    tableRow.addView(createButton("text1"));
    tableRow.addView(createButton("text2"));
    tableRow.addView(createButton("text3"));
    tableRow.addView(createButton("text4"));
    tableRow.addView(createButton("text5"));
    tableRow.addView(createButton("text6"));

    return tableRow;

private View createButton(String string) 
    // TODO Auto-generated method stub
    Button button = new Button(this);

    button.setText(string);
    buttonList.add(button);

    return button;

【讨论】:

非常感谢您为回答这个问题所做的努力。我期待着尝试代码。对不起,我不能投票,我还没有 15 分。 我认为您可以接受答案而不是投票。

以上是关于使用 Eclipse 的 Android 应用程序 - 创建按钮数组的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse/Android 中的可重用项目

使用 Eclipse 的 Android 应用程序 - 创建按钮数组

如何在 Eclipse 中使用 Proguard 混淆 Android 库(.jar 文件)

使用 phonegap eclipse 的 Android 的 HTML5 地理定位应用程序

Android 应用程序不从 Eclipse 启动

无法直接从 Eclipse 到设备调试 android 应用程序