我有多个动态编辑文本框..
TableLayout ll_list = (TableLayout) findViewById(R.id.tbl);
for(i=0;i < Sizedd; i++)
{
EditText ed_comm = new EditText(this);
ll_list.addView(ed_comm);
}
如何将其值存储在哈希图中?
您可以做的是,为您创建的每个 EditText 设置 Tag,并使用 Text Watcher 存储它们的数据。我不擅长这个。但是尝试相应地修改我的代码段。
首先全局声明一个HashMap,
public HashMap<Integer,String> myList=new HashMap<Integer,String>();
和
TableLayout ll_list = (TableLayout) findViewById(R.id.tbl);
for(i=0;i < Sizedd; i++)
{
EditText ed_comm = new EditText(this);
ed_comm.setTag(i); // By this you have set an Tag to the editText and hence you can find out which editText it is, in the TextWatcher implementation.
ll_list.addView(ed_comm);
ed_comm.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
Log.i("After Text","Called");
myList.put(ed_comm.getTag(),s.toString().trim());
}
});
}
而已。您已将值存储到 hashMap。这个 TextWatcher 将为您在 EditText 中输入的每个文本调用。因此,您的哈希图将随时更新。
现在要从 Hashmap 中获取数据,请执行此操作,
Iterator i = myList.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}