0

HashMap在列表视图中填充了一个。此哈希图包含EditText必须由用户填写的内容。我的问题是我不知道如何EditText获取HashMap.

EditText txt_iDesc = (EditText)findViewById(R.id.txt_iDesc);

mylist = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < listSelectedFileNames.size(); i++) 
{
  HashMap<String, String> map = new HashMap<String, String>();
  map.put(FILE_NAME, selectedFileNames[i]);
  map.put(DESC, "");
  map.put(UPLOADED_BY, "User");
  map.put(DATE_UPLOADED, myDate);
  map.put(ACTION, "Delete");
  map.put(ID, String.valueOf(i));
  map.put(FILE_URI, selectedFileUri[i]);
  mylist.add(map);
}

我的 DESCHashMap包含txt_iDesc. EditText当用户在editText上输入内容然后保存它时,我怎么可能得到它的值。提前致谢。下面是我将数据保存在数据库中的 hashmap 中的代码,它只获取第一个 editText 的值。

SQLiteDatabase db = databaseHandler.getWritableDatabase();
db.beginTransaction();

for(HashMap<String, String> map : mylist)
{
     ContentValues cv = new ContentValues();
     cv.put(Constants.ATTACH_REPORTCODE, ReportCode);
     cv.put(Constants.ATTACH_FILENAME, map.get(FILE_NAME));
     cv.put(Constants.ATTACH_DESCRIPTION, txt_iDesc.getText().toString());
     cv.put(Constants.ATTACH_FILELOCATION, map.get(FILE_URI));
     cv.put(Constants.ATTACH_CREATEDBY, map.get(UPLOADED_BY));
     cv.put(Constants.ATTACH_DATECREATED, map.get(DATE_UPLOADED));

     db.insert(Constants.TABLE_ATTACH, null, cv);
}
db.setTransactionSuccessful();
db.endTransaction();
db.close();
4

2 回答 2

1

利用

txt_iDesc.getText().toString();

如果要在填充 editText 后填充 hashmap,

txt_iDesc.setOnTextChangedListener(this);

onTextChangedListener在您的活动和方法中实施afterTextChanged,您可能会填充数据。

于 2013-07-16T04:55:06.063 回答
0
 HashMap<String, String> map = new HashMap<String, String>();
  map.put(FILE_NAME, selectedFileNames[i]);
  map.put(DESC, txt_iDesc.getText().toString.trim());
  map.put(UPLOADED_BY, "User");
  map.put(DATE_UPLOADED, myDate);
  map.put(ACTION, "Delete");
  map.put(ID, String.valueOf(i));
  map.put(FILE_URI, selectedFileUri[i]);
  mylist.add(map);

txt_iDesc.getText().toString.trim();

将此行添加到 hasmap 值

于 2013-07-16T04:57:01.427 回答