listView的长按事件有效,点击却失效

今天在做一个Android项目的时候,遇到了一个问题,我为 listView设置了点击长按事件,也就是 setOnItemLongClickListener setOnItemClickListener方法。源码部分如下:

        //添加listview长按事件
        userlist.setOnItemLongClickListener(new 
        AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                View v=userlist.getChildAt(position);
                //获取学号
                TextView t=(TextView) v.findViewById(R.id.textView0);
                String itemid=t.getText().toString();
                showDataAgin(itemid);
                return true;
            }
        });

        //添加listview点击事件
        userlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "Long click to modify or delete data", Toast.LENGTH_SHORT).show();
            }
        });

这样设置后,进入模拟设备,点击listview,长按事件响应了,点击事件却没有响应,在点击事件中添加
System.out.println("running");
查看运行信息,也没有显示点击事件在运行。百思不得其解。后来我查看listViewitem.xml文件中,textView中有添加 android:longClickable="true"这样一句,查询后知道,这句代码的意思是定义TextView是否对长按事件做出反应。实验删除之,看看效果。然后运行程序,点击事件响应了,那么说明是这句代码会屏蔽listView的点击事件。删除了后,listView的长按和点击事件依然可以生效。

posted @ 2019-05-04 17:41  来自江南的阿豪  Views(695)  Comments(0)    收藏  举报