我有一个列表视图,我想获取所选项目的文本。
我试过这个
mContactList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(Contacts.this);
SharedPreferences.Editor edit = pref.edit();
n = mContactList.getItemAtPosition(arg2).toString();
Log.v("Contacts", "List Name: " + n);
edit.putString(Prefs.NAME, n);
showDialog(1);
return false;
}
});
但它在日志
中给了我这个List Name: android.database.sqlite.SQLiteCursor@40522900
我需要做什么?
答案 0 :(得分:2)
单击的项目应该是您的View参数。在你的情况下arg1。典型的ListView使用TextView显示项目。因此,将View arg1强制转换为TextView,然后使用getText();
获取文本String listItemSelected_TextValue = ((TextView) arg1).getText();
答案 1 :(得分:0)
我认为关键在于“查看arg1”这个论点。
您在listView中列出了哪些视图?如果它是纯文本视图的列表,那么arg1.getText()应该可以做到(就像Spidy所说的那样)。
如果它是一个包含textView的更复杂的View,那么首先使用:
获取textViewTextView tv = (TextView) arg1.findViewById(R.id.text_view_id);
然后在那上面调用getText()。