如何使用隐式ListView使用和默认适配器设置OnItemClickListener()

时间:2013-07-19 21:23:05

标签: android listview android-listview onitemclicklistener

通常我使用

设置我的ItemClickListener
list.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                    long x = MyActivity.this.myAdapter.getItemId(position); //to get the clicked item position
            }
        });

设置ListView等后

现在我必须以这种方式处理使用默认Android列表适配器的列表的代码

public class ListDefs extends ListActivity {
        private Defs defs;
        private ArrayAdapter<String> adapter;

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            defs = Note.defs;
            adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, defs.lines);
            setListAdapter(adapter);
        }


    }

如何在此方案中设置OnItemClickListener()

1 个答案:

答案 0 :(得分:0)

ListActivity同时使用getListAdaptergetListView方法。

在你的onCreate中,打电话后

setContentView(R.layout.list_activity); 

其中R.layout.list_activity是您的活动的布局文件,其中ListView标记有android列表ID,如此(根据文档)

<ListView
    android:id="@android:id/list"
    ... />

你可以打电话

getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    ...
    }
});

来自文档

ListActivity具有默认布局,该布局由屏幕中央的单个全屏列表组成。但是,如果需要,可以通过在onCreate()中使用setContentView()设置自己的视图布局来自定义屏幕布局。为此,您自己的视图必须包含一个ID为“@android:id / list”的ListView对象(如果它在代码中则列出)