我在列表视图中填充了HashMap
。此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);
}
HashMap
中的DESC拥有txt_iDesc
。当用户在editText上输入内容然后保存它时,我怎么可能得到EditText
的值。提前致谢。下面是我在数据库中保存数据的代码,它只获取第一个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();
答案 0 :(得分:1)
使用
txt_iDesc.getText().toString();
如果要在填充editText后填充hashmap,
txt_iDesc.setOnTextChangedListener(this);
在您的活动中实施onTextChangedListener
,在afterTextChanged
方法中,您可能会填充数据。
答案 1 :(得分: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();
将此行添加到hashmap值