Мне нужно создать список типов ресторанов. Я уже написал простое диалоговое окно оповещения, в котором присутствует список флажков. Но я хочу, чтобы последний, называемый «больше», включал поле для редактирования, где пользователь может написать свой собственный тип, но я не знаю, как это сделать. Я новичок
Это текущий вывод моего приложения:
Выход приложения
Я хочу быть таким:
Требуемый выход
Здесь есть код диалога, если необходимо:
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();
}
});
}