ListView:onItemLongClick Toasts对象

时间:2013-09-24 11:44:03

标签: android android-listview onlongclicklistener

我想在ListView中为选定列表项添加文本。我正在使用自定义适配器。我试过这段代码。

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,final int pos,
        final long id) {
    String text=String.valueOf(lv.getItemAtPosition(pos));
    Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();
  }

但它是像com.demo.CustomList@413ffb10一样烘烤对象名称。谁能告诉我如何烘烤相应的项目?

注意:以上代码适用于简单适配器,但不适用于自定义适配器

4 个答案:

答案 0 :(得分:2)

假设列表视图具有CustomList类型的对象,根据您的代码,它显示CutsomList类的默认toString()方法。您应该访问要显示的变量并将其烘烤。

例如:

       public class CustomList {
                  String title;

        public String getTitle(){
        return name;
        }
}

在onClick中,您可以执行以下操作:

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,final int pos,
        final long id) {
     CustomList customList= (CustomList )lv.getItemAtPosition(pos);

    Toast.makeText(getActivity(), customList.getTitle(), Toast.LENGTH_SHORT).show();
  }

这正是您所寻找的。希望有所帮助。

答案 1 :(得分:1)

我不知道你custom list view的结构。但是,如果您想从toast获得TextView custom list view值,请执行以下操作:

String text= (TextView)view.findViewById(R.id.YOUR_LIST_ITEM_TEXT_VIEW).getText();
Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();

答案 2 :(得分:0)

试试这个

String text=parent.getItemAtPosition(pos).toString();
Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();

答案 3 :(得分:0)

getItemAtPosition()方法返回属于适配器使用的数据结构的对象,而不是图形小部件的实例