列表视图获取项目文本

3

我需要获取所选项目的文本(而不是id)。 在onListItemClick下面,我可以编写什么代码来实现这个功能? 以下是我的代码:

java.lang.ClassCastException: org.eclipse.jdt.internal.debug.core.model.JDIObjectValue cannot be cast to org.eclipse.jdt.debug.core.IJavaArray
at org.eclipse.jdt.internal.debug.ui.JavaDetailFormattersManager.getCompiledExpression(JavaDetailFormattersManager.java:396)
at org.eclipse.jdt.internal.debug.ui.JavaDetailFormattersManager.resolveFormatter(JavaDetailFormattersManager.java:167)
at org.eclipse.jdt.internal.debug.ui.JavaDetailFormattersManager.access$1(JavaDetailFormattersManager.java:152)
at org.eclipse.jdt.internal.debug.ui.JavaDetailFormattersManager$3.run(JavaDetailFormattersManager.java:143)
at org.eclipse.jdt.internal.debug.core.model.JDIThread$ThreadJob.run(JDIThread.java:2751)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
2个回答

2

在传递给 onItemClick 的参数中,其中一个是被点击的视图:

abstract void onItemClick(AdapterView parent, View view, int position, long id)

view 转换为适当的类型并调用其上的 getText() 方法;例如:

final String text = ((TextView)view).getText();

我正在使用EfficientAdapter,但这个方法不起作用。有什么想法为什么会这样? - OkyDokyman
我写了以下代码:String item=(String) ((TextView) v).getText(); 但是出现了 ClassCastException 错误。 - OkyDokyman
还有一件事 - 因为它是EfficientAdapter,所以((TextView)view)无法工作,因为视图实际上是LinearLayout。 - OkyDokyman
不要忘记在getText()的末尾添加toString()。 - Bijan

-1

有多种方法可以实现这个功能,这也取决于您是从简单的 listView 中获取文本还是从 Custom ListView(使用 custom_list_item.xml)中获取文本。

对于简单的 ListView

lv.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        String text = lv.get(position).tostring().trim();//first method 
        final String text = ((TextView)view).getText();// second method
}});

关于自定义 ListView

lv.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        TextView textView = (TextView) view.findViewById(R.id.list_content);
//where list_content is the id of TextView in listview_item.xml

}});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接