【发布时间】:2015-12-15 15:15:20
【问题描述】:
我在单击按钮时添加多个 Edittext。我也得到了这些 Edittext 的值,但我无法将数据存储在数组中。
EditText textIn;
Button buttonAdd, buttonShow;
LinearLayout container;
List<EditText> allEds = new ArrayList<EditText>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonAdd = (Button)findViewById(R.id.add);
buttonShow = (Button) findViewById(R.id.show);
container = (LinearLayout)findViewById(R.id.container);
buttonAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
LayoutInflater layoutInflater =
(LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View addView = layoutInflater.inflate(R.layout.row, null);
EditText editText1 = (EditText) addView.findViewById(R.id.editText1);
EditText editText2 = (EditText) addView.findViewById(R.id.editText2);
allEds.add(editText1);
allEds.add(editText2);
Button buttonRemove = (Button) addView.findViewById(R.id.remove);
buttonRemove.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((LinearLayout) addView.getParent()).removeView(addView);
}
});
container.addView(addView);
}
});
buttonShow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String[] strings = new String[allEds.size()];
for(int i=0; i < allEds.size(); i++){
strings[i] = allEds.get(i).getText().toString();
Log.e("My data", strings[i]);
}
}
});
在这里,我使用 strings[i] 获取所有值,但我想像这样将值存储在数组中。 [{"Name": "Smith","Age", "26"},{"Name": "Jhon","Age", "30"}]。在这里,我将从多个生成的 Edittext 中得到 Smith,26 和 Jhon,30。生成更多动态字段后,将扩展数组。 请帮我。
【问题讨论】:
-
你想要它作为Json字符串
[{"Name": "Smith","Age": 26}]吗?或 Array 中键为 Name、Age 且值为 Smith 和 26 的元素?
标签: java android arrays dictionary dynamic