我想在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
一样烘烤对象名称。谁能告诉我如何烘烤相应的项目?
注意:以上代码适用于简单适配器,但不适用于自定义适配器
答案 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()
方法返回属于适配器使用的数据结构的对象,而不是图形小部件的实例