android - 如何在android中动态创建的按钮上设置随机文本?

标签 android button

首先抱歉英语不好,这里我附上了屏幕截图,我创建了第一行的动态按钮,第二行的按钮是静态的来自xml,我可以成功创建按钮,现在(1)我想要当我单击下面行的任何按钮,当时我想在动态创建的第一个按钮上设置文本,在我的代码中,它设置在最后一个按钮上,(2) 如果第一个按钮有一些文本,则文本将设置为第二个按钮,我正在使用下面的代码。

private Button Dynamic_Button;

    layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
    for (int i = 1; i < 6; i++) {
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        Dynamic_Button = new Button(this);
        Dynamic_Button.setId(i);

        final int id_ = Dynamic_Button.getId();
        layout.addView(Dynamic_Button, params);
        Dynamic_Button = ((Button) findViewById(id_));
        Dynamic_Button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(view.getContext(),
                        "Button clicked index = " + id_, Toast.LENGTH_SHORT)
                        .show();

            }
        });
    }

//和下面的代码用于在动态按钮上设置文本

Dynamic_Button.setText(str); 

enter image description here

最佳答案

检查此代码 - 经过尝试和测试

public class MainActivity extends Activity {

private Button dynamic_Button;
private LinearLayout layout = null;
private Button add = null;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
    add = (Button) findViewById(R.id.Add);

    for (int i = 1; i < 6; i++) {
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        dynamic_Button = new Button(this);
        dynamic_Button.setId(i);
        final int id_ = dynamic_Button.getId();
        layout.addView(dynamic_Button, params);
        dynamic_Button = ((Button) findViewById(id_));
        dynamic_Button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(view.getContext(),
                        "Button clicked index = " + id_, Toast.LENGTH_SHORT)
                        .show();

            }
        });
    }

    add.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) 
        {
            for (int i = 1; i < 6; i++)
            {
                if(((Button)findViewById(i)).getText().toString().trim().length()<=0)
                {
                    ((Button)findViewById(i)).setText(""+i);
                    break;
                }
            }
        }
    });
}
}

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

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

<LinearLayout
    android:id="@+id/linear_static_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linear_layout_tags" >

    <Button
        android:id="@+id/Add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add" />
</LinearLayout>

</RelativeLayout>

关于android - 如何在android中动态创建的按钮上设置随机文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453049/

相关文章:

javascript - 如何将html按钮链接到php?

java - WP10检测到的蓝牙设备功能

android - 水平 ScrollView 的scrollTo()不起作用

javascript - jQuery 验证普通按钮上的表单(不提交)

javascript - 复选框内的复选框标签或激活哪个按钮?

android - 将按钮添加到列表 Activity

ios - 我可以根据分段控制索引通过按钮快速移动屏幕吗?

android - 通过监听器将数据从 Activity 发送到 fragment

java - 向 TextView 添加一个字母

android - 使用速记十六进制颜色的 Glide 的 SVG 问题