具有CheckedTextView和图像的Android多项目可选警报对话框

时间:2018-10-01 08:14:12

标签: android listview multi-select multichoiceitems

我想创建一个包含多个Choice ListView和图像的警报对话框。单击图像后,将出现ToolTipToast,显示有关列表项的一些信息。 ToolTipToast仅在单击图像而不是选中的项目时才显示。 我已经为多选ListView编写了对话框构建器,但是如何包括图像和图像单击侦听器?

这是我的DialogBu​​ilder:

txtCategories.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder mBuilder = new AlertDialog.Builder(activity_en_register.this);
                mBuilder.setTitle(R.string.en_profile_UserCategory);
                mBuilder.setMultiChoiceItems(listItems, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int position, boolean isChecked) {

                        if(isChecked){
                            mUserItems.add(position);
                        }else{
                            mUserItems.remove((Integer.valueOf(position)));
                        }

                        Toast.makeText(getApplicationContext(),helpItems[position].toString(),Toast.LENGTH_SHORT).show();
                    }
                });

                mBuilder.setCancelable(false);
                mBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        String item = "";
                        for (int i = 0; i < mUserItems.size(); i++) {
                            item = item + listItems[mUserItems.get(i)];
                            if (i != mUserItems.size() - 1) {
                                item = item + ", ";
                            }
                        }
                            txtCategories.setText(item);
                    }
                });

                mBuilder.setNegativeButton("Clear All", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        for (int i = 0; i < checkedItems.length; i++) {
                            checkedItems[i] = false;
                            mUserItems.clear();
                            txtCategories.setText("");
                        }
                    }
                });

                mBuilder.setNeutralButton("Select All",  new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        String item = "";
                        for(int m = 0; m < checkedItems.length; m++) {
                            checkedItems[m] = true;
                            item = item + listItems[m];

                            if (m != checkedItems.length - 1) {
                                item = item + ", ";
                            }
                        }

                        txtCategories.setText(item);
                    }
                });

                AlertDialog mDialog = mBuilder.create();
                mDialog.show();
            }
        });

0 个答案:

没有答案