Moh*_*man 37 java string android android-edittext
我已经成功创建了EditTexts,具体取决于Android中的用户输入,并且我已经使用setId()方法为它们分配了唯一的ID .
现在我想要做的是EditText当用户点击一个按钮时从动态创建的s中获取值,然后将所有值存储在String变量中.即,具有id为'1'的EditText的值应保存在String类型的str1中,依此类推,具体取决于EditTexts的数量.
我正在使用getid()和gettext().toString()方法,但它似乎有点棘手...我不能将EditText的每个值分配给String变量.当我尝试这样做NullPointerException时会发生,如果不是没有显示用户输入数据的情况,我会以吐司形式显示它.
继承人,代码:
EditText ed;
for (int i = 0; i < count; i++) {
ed = new EditText(Activity2.this);
ed.setBackgroundResource(R.color.blackOpacity);
ed.setId(id);
ed.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
linear.addView(ed);
}
Run Code Online (Sandbox Code Playgroud)
我现在如何将每个EditText中的值传递给每个不同的字符串变量?如果某个机构可以帮助提供示例代码,那将会很不错.
Pet*_*ego 56
在每次迭代中,您都在重写ed变量,因此当循环完成时,ed只指向您创建的最后一个EditText实例.
您应该存储对所有EditTexts的所有引用:
EditText ed;
List<EditText> allEds = new ArrayList<EditText>();
for (int i = 0; i < count; i++) {
ed = new EditText(Activity2.this);
allEds.add(ed);
ed.setBackgroundResource(R.color.blackOpacity);
ed.setId(id);
ed.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
linear.addView(ed);
}
Run Code Online (Sandbox Code Playgroud)
现在allEds列出对所有EditTexts的引用,因此您可以迭代它并获取所有数据.
更新:
按要求:
String[] strings = new String[](allEds.size());
for(int i=0; i < allEds.size(); i++){
string[i] = allEds.get(i).getText().toString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46743 次 |
| 最近记录: |