将一组按钮添加到 Android 应用程序中的 GridView [英] Add an array of buttons to a GridView in an Android application

查看:62
本文介绍了将一组按钮添加到 Android 应用程序中的 GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个应用程序,它有 5-15 个按钮,具体取决于后端可用的按钮.如何定义正确的 GridView 布局文件以包含一组按钮,每个按钮将具有不同的文本和其他属性?每个按钮本质上都会将一个商品添加到购物车,因此除了添加到购物车的商品外,onClick 代码将相同.

I have an application that will have 5-15 buttons depending on what is available from a backend. How do I define the proper GridView layout files to include an array of buttons that will each have different text and other attributes? Each button will essentially add an item to a cart, so the onClick code will be the same except for the item it adds to the cart.

如何定义数组以便添加可变数量的按钮,但仍然通过唯一 ID 引用每个按钮?我见过 arrays.xml 的例子,但他们创建了一个预先设置的字符串数组.我需要一种方法来创建一个对象,而不是在布局或数组 xml 文件中定义文本.

How can I define an array so I can add a variable number of buttons, but still reference each of them by a unique ID? I've seen examples of the arrays.xml, but they have created an array of strings that are pre-set. I need a way to create an object and not have the text defined in the layout or arrays xml file.

更新 - 添加了有关添加到 GridView 的信息

我想将此添加到 GridView,因此调用 [addView 方法](http://developer.android.com/reference/android/widget/AdapterView.html#addView(android.view.View,%20int) 结果UnsupportedOperationException.我可以执行以下操作:

I want to add this to a GridView, so calling the [addView method](http://developer.android.com/reference/android/widget/AdapterView.html#addView(android.view.View,%20int) results in an UnsupportedOperationException. I can do the following:

ImageButton b2 = new ImageButton(getApplicationContext());
b2.setBackgroundResource(R.drawable.img_3);
android.widget.LinearLayout container = (android.widget.LinearLayout) findViewById(R.id.lay);
container.addView(b2);

但这并没有像我想要的那样在网格中布置按钮.这可以在 GridView 中完成吗?

but that doesn't layout the buttons in a grid like I would like. Can this be done in a GridView?

推荐答案

在下面的代码中,您应该将 for 的上限更改为一个变量.

In the following code, you should change the upper limits of the for to a variable.

public class MainActivity
        extends Activity
        implements View.OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TableLayout layout = new TableLayout (this);
        layout.setLayoutParams( new TableLayout.LayoutParams(4,5) );

        layout.setPadding(1,1,1,1);

        for (int f=0; f<=13; f++) {
            TableRow tr = new TableRow(this);
            for (int c=0; c<=9; c++) {
                Button b = new Button (this);
                b.setText(""+f+c);
                b.setTextSize(10.0f);
                b.setTextColor(Color.rgb( 100, 200, 200));
                b.setOnClickListener(this);
                tr.addView(b, 30,30);
            } // for
            layout.addView(tr);
        } // for

        super.setContentView(layout);
    } // ()

    public void onClick(View view) {
        ((Button) view).setText("*");
        ((Button) view).setEnabled(false);
    }
} // class

这篇关于将一组按钮添加到 Android 应用程序中的 GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆