java - 如何动态地在彼此下方添加按钮

标签 java android

在过去的几天里,我一直在尝试弄清楚如何制作一个按钮列表,这些按钮彼此下方,并动态填充屏幕的整个宽度。例如:

Image of stacked buttons, apparently I cant embed images yet.

(我很便宜地拍了一张已有的只有一个按钮的屏幕截图,然后在 paint.net 中对其进行了编辑,使其看起来像按钮堆叠在一起。)

所以,基本上,我有一个来自 R 的字符串列表,其中包括按钮的名称,我需要像这样列出它们。我一直在四处寻找,如果我确实发现了任何过时的东西(并且没有用)

这就是我目前所拥有的(它有点乱,因为它包含了实现这一目标的许多尝试)

LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);

    Field[] fields = R.raw.class.getFields();

    for(int count=0; count < fields.length; count++){

        String filename = fields[count].getName();

        try {
            Button button = new Button(this);
            button.setText(filename);
            button.setId(startID + 1 + count); //this variable is offscreen
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //finish later
                }

            });
            button.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));

            layout.addView(button);

        } catch (Exception e) {
            Toast.makeText(MainActivity.this, "Exception.", Toast.LENGTH_LONG).show();
        }
    }

(这是在 onCreate() 中供引用)

因此,如果有人对我如何做到这一点有任何解决方案/想法,请分享。我对创建 Android 应用程序还很陌生。

最佳答案

Java

    LinearLayout layout = (LinearLayout) findViewById(R.id.layout);

    String[] items = {"item 1", "item 2", "item 3", "item 4", "item 5"};

    for (int i = 0; i < items.length; i++) {
        Button btn = new Button(this);
        btn.setText(items[i]);
        btn.setId(i);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);

        params.setMargins(10, 10, 10, 10);
        btn.setLayoutParams(params);
        layout.addView(btn);
    }

XML

   <LinearLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
  </LinearLayout>

关于java - 如何动态地在彼此下方添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33336058/

相关文章:

java - 我的 java zkoss 程序出了什么问题

java - 无法在 Ubuntu 上运行 javac

android - 如何在android中使用日期时间?

android - 字体更改时处理运行时 Activity 配置

java - 使用 try 语句声明对象

java - searchview oncloselistener 不起作用

java - Realm 数据库问题。 - 没有找到默认的 Realm 配置 -

android - 当我将一个变量从一个 Activity 传递到另一个 Activity 时出现 NullPointer 异常

java - 寻找合适的设计模式

android - 调用 OnDataChange 方法并报告空对象