在我的应用程序中,我在按钮点击动态创建多个editTexts,如下所示:
@Override
public void onClick(View v)
{
EditText et= new EditText(MainActivity.this);
et.setInputType(InputType.TYPE_CLASS_TEXT);
ll.addView(et);// ll is Linear Layout.
}
现在我想从单个String中的Button上创建的所有edittext中获取文本。我不知道该怎么做。有人请帮助我。
答案 0 :(得分:2)
在父类中使用容器:
List<EditText> edits = new ArrayList<EditText>();
...
@Override
public void onClick(View v)
{
EditText et= new EditText(MainActivity.this);
et.setInputType(InputType.TYPE_CLASS_TEXT);
ll.addView(et);// ll is Linear Layout.
edits.add(et);
}
然后迭代该列表以获取文本。
答案 1 :(得分:1)
这样的事可以帮到你:
String assembledString = "";
View tempView;
for(int i = 0; i < ll.getChildCount(); i++){
tempView = ll.getChildAt(i);
if(tempView instanceof EditText){
assembledString += ((EditText) tempView).getText().toString();
}
}
基本上假设ll是某种类型(Frame,Linear,Relative)的布局,你可以使用getChildCount()。这允许您循环遍历所有孩子。然后它只是一个获取视图并检查其EditText的情况。如果是这样,那么你可以抓住字符串并随意做任何事情。
祝你好运。答案 2 :(得分:1)
循环遍历'LinearLayout'的孩子并让他们的文字做你想做的事
String text = "";
for(int i =0;i<ll.getChildCount();i++)
{
try
{
text += ((EditText)ll.getChildAt(i)).gettext().toString();
}
catch(Exception e)
{
}
}
这肯定会有效..