Android中的ListView,单击项目的处理程序

时间:2011-02-18 23:22:51

标签: android listview

我在Android中有一个使用ListView的活动。当我单击ListView中的项目时,我希望能够确定单击了哪个项目。我有以下代码:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setContentView(R.layout.listr);

   //setupDB();  
   //populateList3();
   ListView lv = (ListView) findViewById(R.id.ListView01);
   lv.setClickable(true);

   lv.setOnItemClickListener(new OnItemClickListener() {

   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {      
        Toast.makeText(ListRecords.this,"Clicked!", Toast.LENGTH_LONG).show();
       }
   });

}

我的layout.xml:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout  
    xmlns:android="http://schemas.android.com/apk/res/android"  

     android:id="@+id/Linear03lr"
     android:layout_width="fill_parent"  
     android:orientation="vertical"  
     android:gravity="center"
     android:layout_height="fill_parent">  


 <!--Put form controls here-->  
    <ListView android:id="@+id/ListView01"

 android:layout_width="wrap_content"
 android:layout_height="400dp" />

     <Button
        android:id="@+id/previousbutton"
        android:gravity="center_horizontal"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent"

        android:text="Previous Menu"/>
</LinearLayout>  

我在这里缺少什么能够拦截Listview上的点击?

3 个答案:

答案 0 :(得分:2)

使用ListActivity可能更容易,然后您只需要覆盖onListItemClick

答案 1 :(得分:0)

假设您正在填充列表视图(现在它没有任何内容),则单击项目的位置将在您的onitemclick方法的“position”参数中给出。

在开发过程中,我建议使用log.v("text1","text2")记录信息并检查DDMS控制台以查看应用程序实际执行的内容。

答案 2 :(得分:0)

看起来您已正确设置clickListener。使用此代码,当您单击列表中的项目时,您是否获得了Toast弹出窗口?传递给onClick()方法的int位置变量将让您看到列表中的哪个项目已被点击。