首页 > 解决方案 > 启用 Edit Box Android 的复选框

问题描述

我需要创建一个餐厅类型列表。我已经编写了一个简单的警报对话框,其中存在一个复选框列表。但我希望最后一个,称为“更多”启用一个编辑框,用户可以在其中编写他的自定义类型,但我不知道该怎么做。我是初学者。

这是我的应用程序的当前输出:

应用输出

我想变成这样:

想要的输出

如果需要,这里有一些对话框代码:

private TextView text; private String[] listItems; private boolean[] checkedItems; private ArrayList<Integer> selectedItems = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    text = findViewById(R.id.textView);

    listItems = getResources().getStringArray(R.array.menu);
    checkedItems = new boolean[listItems.length];

    text.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Type of cusine");
            builder.setMultiChoiceItems(listItems, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    if(isChecked){
                        if(!selectedItems.contains(which)){

                            if(which == listItems.length-1){
                                dialog.dismiss();

                                AlertDialog.Builder builder2 = new AlertDialog.Builder(MainActivity.this);
                                builder2.setTitle("Enter your type");

                            }

                            selectedItems.add(which);
                        }
                    }else if(selectedItems.contains(which)){
                        selectedItems.remove(which);            //To avoid duplicates
                    }
                }
            });

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

            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });

            builder.setNeutralButton("Clear all", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    for(int i=0; i<checkedItems.length; i++){
                        checkedItems[i] = false;
                        selectedItems.clear();
                        text.setText("");
                    }
                }
            });

            AlertDialog dialog = builder.create();
            dialog.show();
        }
    });
}

标签: androidandroid-edittextandroid-dialogandroid-checkbox

解决方案


推荐阅读