问题描述
public class MainActivity extends AppCompatActivity {
EditText EditText1,EditText2,EditText3,EditText4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText1 = findViewById(R.id.edittext);
EditText2 = findViewById(R.id.edittext);
EditText3 = findViewById(R.id.edittext);
EditText4 = findViewById(R.id.edittext);
addChildLayout();
addChildLayout();
addChildLayout();
addChildLayout();
}
public void addChildLayout(){
LayoutInflater layoutInfralte=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linearLayout=(LinearLayout)findViewById(R.id.infolayout);
View view=layoutInfralte.inflate(R.layout.activity_main_layout,null);
linearLayout.addView(view);
}
}
如何从所有四个视图中选择 EditText 并显示它们,有什么想法吗?我可以在这里做什么?
解决方法
在每个 editText 引用上使用 .getText()
public class MainActivity extends AppCompatActivity {
EditText EditText1,EditText2,EditText3,EditText4;
List<EditText> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText1 = findViewById(R.id.edittext);
EditText2 = findViewById(R.id.edittext);
EditText3 = findViewById(R.id.edittext);
EditText4 = findViewById(R.id.edittext);
addChildLayout();
addChildLayout();
addChildLayout();
addChildLayout();
}
public void addChildLayout(){
LayoutInflater layoutInfralte=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linearLayout=(LinearLayout)findViewById(R.id.infolayout);
View view=layoutInfralte.inflate(R.layout.activity_main_layout,null);
EditText inflatededitText=(EditText)view.findViewById(R.id.youredittextid);
list.add(inflatededitText);
linearLayout.addView(view);
}
}
现在你可以得到像下面这样的任何编辑文本
list.get(0).getText.toString
这里 0 是编辑文本的位置
如果你需要所有的edittext值,那么像这样使用for循环
for(int i=0;i<list.length;i++){
Log.d("value","list.get(i).getText.toString");
}