当choice_mode打开时,禁用按钮单击所有列表视图项

时间:2015-11-26 10:00:53

标签: android listview android-arrayadapter

CHOICE_MODE_MULTIPLE_MODAL使用ListView并且它运行正常。问题是我的ListView行项目包含2个按钮。我希望在检查一些行时将所有行按钮设置为禁用。如何实现此目的?

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

    listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
        @Override
        public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
            final int checkedCount = studentListView.getCheckedItemCount();
            mode.setTitle(checkedCount + " selected");
            adapter.toggleSelection(position);
        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            SparseBooleanArray selected;
            switch (item.getItemId())
            {
                case R.id.menu_item1:

                    mode.finish();
                    return true;

                case R.id.menu_item2:

                    mode.finish();
                    return true;

                case R.id.menu_item3:

                    mode.finish();
                    return true;
                default:
                    return false;
            }
        }

        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            mode.getMenuInflater().inflate(R.menu.multiselectmenu, menu);
            return true;
        }

        @Override
        public void onDestroyActionMode(ActionMode mode) {
            adapter.removeSelection();
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }
    });

2 个答案:

答案 0 :(得分:0)

检查何时检查了一些行。

为要禁用的按钮调用buton.setEnabled(false)。

答案 1 :(得分:0)

//在模型类中添加一个布尔值,并在适配器中检查相同的条件

        raw_button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (<booleanvar==true>) {
                    // 
                }
            }
        });