ОК, поэтому я создаю ArrayAdapter и использую его в диалоговом окне Alert, потому что я не хочу показывать переключатели по умолчанию в диалоговом окне SingleItemSelection.
Вместо этого я хочу изменить фон выбранного элемента, а затем, когда пользователь нажмет положительную кнопку, я выберу действие, связанное с выбранным элементом.
private void showAlertDialog()
{
final String[] options = getResources().getStringArray(R.array.dialog_options);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, options);
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle("My Dialog");
dialogBuilder.setAdapter(adapter, new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(getApplicationContext(), "item clicked at index " + which, Toast.LENGTH_LONG).show();
// Here I need to change the background color of the item selected and prevent the dialog from being dismissed
}
});
//String strOkay = getString(R.string.okay);
dialogBuilder.setPositiveButton("OK", null); // TODO
dialogBuilder.setNegativeButton("Cancel", null); // nothing simply dismiss
AlertDialog dialog = dialogBuilder.create();
dialog.show();
}
Есть две проблемы, которые я пытаюсь решить.
Как предотвратить отклонение диалога, когда пользователь нажимает на элемент
Как изменить фон элемента, который был выбран, когда пользователь нажимает на него