如何编写代码,用户输入文本字段所需的按钮数,然后根据编辑文本字段中输入的数字动态显示这些按钮。感谢
答案 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,然后操作用户请求的按钮数。然后它将循环获取数字并根据需要创建一个新按钮
如果您需要更多信息,请与我们联系。