简体   繁体   English

Android:当我为ListView设置OnClickListener时

[英]Android: When I set an OnClickListener for a ListView

    lv.setOnClickListener(new OnClickListener(){
        public void onClick(View v){

        }
    });

Does v refer to the ListView lv or the specific item selected in the list? v是指ListView lv还是列表中选择的特定项?

I believe that v refers to the whole ListView . 我相信v指的是整个ListView To add a click handler for an item, you want to use AdapterView.setOnItemClickListener . 要为项添加单击处理程序,您需要使用AdapterView.setOnItemClickListener

你想要的是一个setOnItemClickListener。

onClickListener just listens to a click on the entire View. onClickListener只是听取整个View的点击。 v will be the ListView . v将是ListView

What you probably want is onItemClickListener instead of onClickListener . 你可能想要的是onItemClickListener而不是onClickListener

Or you may want to extend ListActivity and override onListItemClick() 或者您可能希望扩展ListActivity并覆盖onListItemClick()

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View view, int arg2,long itemID) {

        View itemView = view;
        String fromDate = ((TextView)itemView.findViewById(R.id.fromDate)).getText().toString();
        int position = (int) arg0.getSelectedItemId();
        Log.d(TAG, "ListView Selected : "+fromDate+" Position:"+position+" arg2:"+arg2+" arg3:"+itemID);
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM