我已经按照本教程进行操作 http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ 并且喜欢为列表视图添加点击。
现在这是我的main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="@drawable/list_divider"
android:dividerHeight="1px"
android:cacheColorHint="#00000000"/>
</LinearLayout>
这是我的代码:
setContentView(R.layout.main);
steden = new ArrayList<voorDeLijst>();
this.m_adapter = new StedenAdapter(this, R.layout.list_item, steden);
setListAdapter(this.m_adapter);
ListView lv = (ListView)findViewById(R.id.List);
lv.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
AlertDialog.Builder adb = new AlertDialog.Builder(HelloAndroid.this);
adb.setTitle("LVSelectedItemExample");
adb.setMessage("Selected Item is = ");
adb.setPositiveButton("Ok", null);
adb.show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
问题是我是初学者并且上面的代码我得到一个错误,因为它找不到listview。所以我无法将OnItemClick侦听器附加到它上面。
但当我将<ListView android:id="@+id/android:list"
更改为<ListView android:id="@+id/List"
时
然后我可以找到列表视图。但它在行setContentView(R.layout.main);
那么如何将onClick / onItemClick附加到Listview,Listview有一个自定义适配器将对象绑定到listitems?
答案 0 :(得分:3)
找到它,因为我的班级扩展了ListActivity
我能做到这一点:
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
...
}
找到了它
答案 1 :(得分:0)
你试过findViewById(android.R.id.list)
吗?实际上,如果您的活动基本上是一个大列表视图,那么您应该使用ListActivity
进行活动,并且有一个访问者可以直接访问ListView
。