【问题标题】:Populate a linear layout with custom class objects使用自定义类对象填充线性布局
【发布时间】:2014-09-22 02:42:01
【问题描述】:

我正在尝试设计一个简单的应用程序,该应用程序可以水平滚动并填充图像按钮。

我能够填充列表,但前提是我手动有 6 个按钮。难道没有办法用数组和循环来做到这一点吗?使用 btn、btn1、btn2 等感觉很笨重。

我的线性列表被称为 mLinearList

我还没有设置 onClickListeners。

private void fillPaintingGallery() {

        ImageButton btn = new ImageButton(this);
        btn.setImageDrawable(getResources().getDrawable(R.drawable.painting1));
        mLinearList.addView(btn);

        ImageButton btn1 = new ImageButton(this);
        btn1.setImageDrawable(getResources().getDrawable(R.drawable.painting2));
        btn1.setContentDescription(RenaissanceDatabase.description[1]);
        mLinearList.addView(btn1);

        ImageButton btn2 = new ImageButton(this);
        btn2.setImageDrawable(getResources().getDrawable(R.drawable.painting3));
        btn2.setContentDescription(RenaissanceDatabase.description[2]);
        mLinearList.addView(btn2);

        ImageButton btn3 = new ImageButton(this);
        btn3.setImageDrawable(getResources().getDrawable(R.drawable.painting4));
        btn3.setContentDescription(RenaissanceDatabase.description[3]);
        mLinearList.addView(btn3);

        ImageButton btn4 = new ImageButton(this);
        btn4.setImageDrawable(getResources().getDrawable(R.drawable.painting5));
        btn4.setContentDescription(RenaissanceDatabase.description[4]);
        mLinearList.addView(btn4);

        ImageButton btn5 = new ImageButton(this);
        btn5.setImageDrawable(getResources().getDrawable(R.drawable.painting6));
        btn5.setContentDescription(RenaissanceDatabase.description[5]);
        mLinearList.addView(btn5);





    }

谢谢

【问题讨论】:

    标签: java android scrollview android-linearlayout imagebutton


    【解决方案1】:

    你为什么不使用 Gridview 或 Listview 来满足你的要求

    for (int i = 0; i < RenaissanceDatabase.description[].length; i++) {
            ImageButton btn = new ImageButton(this);
            int id = getResources().getIdentifier("yourpackagename:drawable/painting" + (i+1), null, null);
            btn.setImageDrawable(getResources().getDrawable(
                    id));
            btn.setContentDescription(RenaissanceDatabase.description[i]);
            mLinearList.addView(btn);
    
        }
    

    【讨论】:

      【解决方案2】:

      使用 ListView 和 Adapter 做您想做的事情的“Android”方式。 ListView 是保存项目列表的容器。适配器控制显示的内容以及显示方式。

      这里是一个good example 如何填充列表。您将修改示例,使模板视图包含一个 ImageButton,而模型将包含图像 uri 和描述。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-09
        • 1970-01-01
        相关资源
        最近更新 更多