在Android中根据用户输入创建一定数量的EditText
如何根据用户输入在Android布局上显示一定数量的EditText?例如,我正在创建一个简单的GPA计算器应用程序,我需要基于用户正在学习的课程数量的多个EditText。我想把范围从1到6级。最简单的方法是创建6个EditText字段,在用户指定时只显示用户需要的数量,还是有更好的方法在Android中根据用户输入创建一定数量的EditText,android,android-layout,Android,Android Layout,如何根据用户输入在Android布局上显示一定数量的EditText?例如,我正在创建一个简单的GPA计算器应用程序,我需要基于用户正在学习的课程数量的多个EditText。我想把范围从1到6级。最简单的方法是创建6个EditText字段,在用户指定时只显示用户需要的数量,还是有更好的方法 谢谢大家! 您可以通过编程方式创建编辑文本 btnClick.setOnClickListener(new OnClickListener(){ //loop based on classes neede
谢谢大家! 您可以通过编程方式创建编辑文本
btnClick.setOnClickListener(new OnClickListener(){
//loop based on classes needed
EditText myEditText = new EditText(context); // Pass it an Activity or Context
myEditText.setLayoutParams(new LayoutParams(..., ...)); // Pass two args; must be LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, or an integer pixel value.
myLayout.addView(myEditText);
});
退房。//试试这个方法,希望这能帮助你。。。
**activity_main.xml**
**MainActivity.java**
公共类MainActivity扩展了活动{
私人线路布局lnrDynamicEditTextHolder;
私有编辑文本edtNoCreate;
私人按钮创建;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lnrDynamicEditTextHolder=(LinearLayout)findViewById(R.id.lnrDynamicEditTextHolder);
edtNoCreate=(EditText)findViewById(R.id.edtNoCreate);
btnCreate=(按钮)findViewById(R.id.btnCreate);
btnCreate.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(edtNoCreate.getText().toString().length()>0){
试一试{
lnrDynamicEditTextHolder.removeAllViews();
}捕获(可丢弃的e){
e、 printStackTrace();
}
int length=Integer.parseInt(edtNoCreate.getText().toString());
对于(int i=0;ifor(int i=0;iThanks),这样做是有意义的。定位、大小调整等是否会在.setLayoutParams方法中实现?如果不是,这是如何实现的?@Aleksandar很抱歉,是我错了。我是个新手。@AnttiHaapala这是添加一个数字,比如“n”(这里3)动态(编程)编辑文本@findViewById中的AnttiHaapala R.id.LinearLayout是为.xml文件中的布局指定的id,参数是要添加到editText的参数,创建editText,为其设置id(以便以后通过此id访问),添加参数并将其添加到布局。当您不知道editText的编号时,可以使用此方法(或与此相关的任何字段),但这取决于程序的动态。例如,我的是一个文字游戏的BFS算法,数字空格根据用户输入而变化。希望这能有所帮助!P.S抱歉,响应太晚了!
// Try this way,hope this will help you...
**activity_main.xml**
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edtNoCreate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Enter no EditText wan create"
android:inputType="number"/>
<Button
android:id="@+id/btnCreate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create"/>
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="5dp">
<LinearLayout
android:id="@+id/lnrDynamicEditTextHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
</LinearLayout>
**MainActivity.java**
public class MainActivity extends Activity{
private LinearLayout lnrDynamicEditTextHolder;
private EditText edtNoCreate;
private Button btnCreate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lnrDynamicEditTextHolder = (LinearLayout) findViewById(R.id.lnrDynamicEditTextHolder);
edtNoCreate = (EditText) findViewById(R.id.edtNoCreate);
btnCreate = (Button) findViewById(R.id.btnCreate);
btnCreate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(edtNoCreate.getText().toString().length()>0) {
try {
lnrDynamicEditTextHolder.removeAllViews();
} catch (Throwable e) {
e.printStackTrace();
}
int length = Integer.parseInt(edtNoCreate.getText().toString());
for (int i=0;i<length;i++){
EditText editText = new EditText(MainActivity.this);
editText.setId(i+1);
editText.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
editText.setHint("EditText "+(i+1));
lnrDynamicEditTextHolder.addView(editText);
}
}
}
});
}
}
for(int i=0;i<3;++i)
{ LinearLayout layout=(LinearLayout)findViewById(R.id.linearLayout);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
android.widget.LinearLayout.LayoutParams.MATCH_PARENT,
android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
EditText edttext= new EditText(this);
edttext.setId(i);
edttext.setLayoutParams(params);
layout.addView(edttext);}
}