如何创建与edittext字段中添加的数字一样多的按钮?

时间:2018-01-13 10:44:30

标签: java android android-edittext

如何编写代码,用户输入文本字段所需的按钮数,然后根据编辑文本字段中输入的数字动态显示这些按钮。感谢

2 个答案:

答案 0 :(得分:1)

从编辑文本中读取计数,并在循环中添加这样的按钮

Button button = new Button(this);
parent.addView(button);

答案 1 :(得分:-1)

这样做应该相当简单。只需先将这些属性添加到XML中即可。

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.nero.myapplication.MainActivity">

<EditText
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Number of Buttons"
    android:inputType="number"/>

<Button
    android:id="@+id/btn_submit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="SUBMIT"/>

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


</LinearLayout>

在您的Edittext中,确保您有inputType到数字,这样您总是可以期望接收整数而不是字符串或其他任何内容。我还添加了一个提交按钮,它会听取您的请求但您可以更改它,但是您想触发该功能。此外,您还需要另一个布局/视图,您将在其中显示按钮。

MainActivity

public class MainActivity extends AppCompatActivity {

EditText main;
Button submit;
LinearLayout layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    main = (EditText) findViewById(R.id.main);
    layout = (LinearLayout) findViewById(R.id.layout);
    submit = (Button)findViewById(R.id.btn_submit);

    submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int noOfButtons = Integer.parseInt(main.getText().toString());

            for(int i = 0; i < noOfButtons; i++){
                Button button = new Button(MainActivity.this);
                layout.addView(button);
            }
        }
    });
}
}

现在,您基本上将所有元素与主活动类连接起来。请注意我使用旧的android工作室版本,这就是为什么我必须在接线时声明变量类型(Button,Edittext,Layout)。
因此,您只需为提交按钮创建一个onClickListener,然后操作用户请求的按钮数。然后它将循环获取数字并根据需要创建一个新按钮 如果您需要更多信息,请与我们联系。