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

我有一个在每行中都有文本和按钮的列表视图,列表视图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;

        }

一只斗牛犬
浏览 1085回答 4
4回答

扬帆大鱼

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

临摹微笑

有时,列表仍将无法使Click Listener通过。在这种情况下,您可能必须再添加一个属性。android:descendantFocusability="blocksDescendants"&nbsp;并且必须将此属性添加到提供ListView元素的XML的最顶层布局中。

守着一只汪

如果您的列表视图中有一个活动视图/可聚焦视图,则它将禁用onItemClickListener...,您可以通过android:focusable="false"在任何通常可聚焦的视图上添加:来使其变为不可&nbsp;聚焦。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android