我在扩展的ListActivity类中有一个ListView。
然后我有以下代码来检测我在列表上的点击
protected void onListItemClick(ListView l, View v, int position, long id)
{
Log.i("", ""+l.getSelectedItem().toString());
}
我想获取与我的点击相关联的数据字符串。
当我运行代码时,我遇到了getSelectedItem()的错误。
http://developer.android.com/reference/android/widget/ListView.html。 getSelectedItem()不是ListView的方法,但它在超类AdapterView中定义。 怎么可能?滚动眼睛
2。 另外,我不确定我理解这一行: android.widget.AdapterView 当它还继承自android.view.ViewGroup 是不是多重继承?
答案 0 :(得分:1)
您可以通过adb logcat
,DDMS或Eclipse中的DDMS透视图获取Java堆栈跟踪,这将帮助您确定错误。
它演示了一个继承树,它得到了大多数现代OO语言的支持。 ViewGroup
是AdapterView
的父级,AbsListView
的父级是ListView
的父级,是{{1}}的父级。
答案 1 :(得分:1)
最简单的方法可能就是:
getListView()setOnItemClickListener(本)。 //在ListActivity.onCreate
然后添加此方法:
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
getListAdapter().getItem(id); //you may need to cast this to whatever you expect
}
你可以看一下继承树 - 你可以看到在这种情况下不涉及多重继承:)