我在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上的点击?
答案 0 :(得分:2)
使用ListActivity可能更容易,然后您只需要覆盖onListItemClick
。
答案 1 :(得分:0)
假设您正在填充列表视图(现在它没有任何内容),则单击项目的位置将在您的onitemclick方法的“position”参数中给出。
在开发过程中,我建议使用log.v("text1","text2")
记录信息并检查DDMS控制台以查看应用程序实际执行的内容。
答案 2 :(得分:0)
看起来您已正确设置clickListener。使用此代码,当您单击列表中的项目时,您是否获得了Toast弹出窗口?传递给onClick()
方法的int位置变量将让您看到列表中的哪个项目已被点击。