为了账号安全,请及时绑定邮箱和手机立即绑定

ListView setOnItemClickListener通过添加按钮不起作用

ListView setOnItemClickListener通过添加按钮不起作用

一只斗牛犬 2019-10-08 11:22:15
我有一个在每行中都有文本和按钮的列表视图,列表视图setOnItemClickListener()不起作用。是否可以以不同的方式处理项目单击和按钮单击事件(项目单击应调用ActivityA,按钮单击应调用ActivityB)。有没有人有办法解决吗    private ArrayList<String> userIDArr = null;    private ArrayList<String> userNameArr = null;    private DatabaseHelper dbHelper = null;    private ListView userListView=null;     public void onCreate(Bundle savedInstanceState)         {          super.onCreate(savedInstanceState);                   setContentView(R.layout.list_view);                   dbHelper = new DatabaseHelper(this.getApplicationContext());                  Map<String,ArrayList<String>> displayMap = dbHelper.getUserListToDisplay();          userIDArr = displayMap.get("UserID");          userNameArr = displayMap.get("FirstName1");                     userListView = (ListView) findViewById(R.id.listView2);          userListView.setAdapter(new UserListAdapter(this,userIDArr));          userListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {              @Override              public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {                  Toast.makeText(usersListActivity.this,                            "Item in position " + position + " clicked", Toast.LENGTH_LONG).show();              }            });     }    public class UserListAdapter extends ArrayAdapter<String>    {        Activity context;        public UserListAdapter(Activity context, ArrayList<String> names) {            super(context, R.layout.list_item, names);            this.context = context;        }        private class ViewHolder {            public TextView UserNameAndID;            public TextView Description;            public Button  UploadBtn;        }
查看完整描述

4 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

尝试像这样设置按钮(或要处理的其他视图单击列表项):


android:focusable="false"

android:focusableInTouchMode="false"


查看完整回答
反对 回复 2019-10-08
?
临摹微笑

TA贡献1982条经验 获得超2个赞

有时,列表仍将无法使Click Listener通过。在这种情况下,您可能必须再添加一个属性。


android:descendantFocusability="blocksDescendants" 

并且必须将此属性添加到提供ListView元素的XML的最顶层布局中。


查看完整回答
反对 回复 2019-10-08
?
守着一只汪

TA贡献1872条经验 获得超3个赞

如果您的列表视图中有一个活动视图/可聚焦视图,则它将禁用onItemClickListener...,您可以通过android:focusable="false"在任何通常可聚焦的视图上添加:来使其变为不可 聚焦。


查看完整回答
反对 回复 2019-10-08
  • 4 回答
  • 0 关注
  • 1084 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信