OnClick ListView

时间:2010-11-28 10:31:55

标签: android listview

我已经按照本教程进行操作 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?

2 个答案:

答案 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();
    ...
}

我在http://www.anddev.org/viewtopic.php?t=22

找到了它

答案 1 :(得分:0)

你试过findViewById(android.R.id.list)吗?实际上,如果您的活动基本上是一个大列表视图,那么您应该使用ListActivity进行活动,并且有一个访问者可以直接访问ListView