我无法通过点击获得ListView
项的名称。我使用SimpleCursorAdapter
从数据库填充数据,当我点击项目时我想要获取项目名称,但我会像这样重新获取数据
android.content.ContentResolver$CursorWrapperInner@4054b988
。
我如何从中获取文字?
有点击监听器:
protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Object object = this.getListAdapter().getItem(position); String item = object.toString(); Log.i( TAG, "Name: " + item ); }
答案 0 :(得分:4)
您可以在一行代码中执行此操作
String str = listDishes.getItemAtPosition(arg2).toString();
其中listDishes
是设置适配器的ListView ...
答案 1 :(得分:3)
实际上你得到了你所谓的。每个对象都有一个默认的toString()
方法,该方法将返回一个String描述其类名和位置在内存中,这就是你得到的结果。您必须重写此方法才能获得有意义的返回值。例如,通过将Object
强制转换为您自己的有意义的对象
class Item{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public String toString(){
return name;
}
}
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Object object = this.getListAdapter().getItem(position);
Item item = (Item) object;
String name = item.getName() \\ or = item.toString(); it's the same
Log.i( TAG, "Name: " + name );
}