获取ListView项的名称

时间:2011-09-08 07:51:32

标签: android listview android-listview

我无法通过点击获得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 );
}

2 个答案:

答案 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 );
}