Android:尝试处理点击事件时setOnClickListerner出错

时间:2014-08-19 11:57:24

标签: android android-listview android-adapter

我有一个ListView,我试图通过以下代码处理项目列表上的click事件

listView.setOnClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {

                String item = ((TextView)view).getText().toString();

               // Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();

            }
        }

但是我收到编译时错误,如下所示

   The method setOnClickListener(View.OnClickListener) in the type AdapterView<ListAdapter> is not applicable for the arguments (new AdapterView.OnItemClickListener(){})

如何解决此错误?

4 个答案:

答案 0 :(得分:1)

setOnClickListener替换为setOnItemClickListener: - )

答案 1 :(得分:1)

使用setOnItemClickListener()为项目点击设置听众。 setOnClickListener()会在View.OnClickListener窗口小部件上注册常规ListView

答案 2 :(得分:1)

使用setOnItemClickListener()

 listview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub
             String item = (String)adapter.getItemAtPosition(position); 
        }

    });

答案 3 :(得分:0)

使用setOnItemClickListener代替setOnClickListener

  

将onClickListener添加到getView()方法中的视图时使用的是   你有2个或更多的视图应该有自己的onClickListener,所以   为了你的更好onItemClickListener

即。将代码重写为

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

                String item = ((TextView)view).getText().toString();

               // Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();

            }
        }

有关详细信息,请参阅 Which: ListView.setOnItemClickListener or TextView.setOnClickListener?