У меня есть Spinner
внутри AlertDialog
, но всякий раз, когда я выбираю значение внутри счетчика, оно не отображается, как только прядильщик закрыт. Мой onItemSelected
ничего не записывает на консоль (я подтвердил, что метод журнала не является нарушенным методом). Вложенный runOnUiThread
является попыткой устранить эту проблему, хотя она не сработала.Android Spinner в AlertDialog не выбирает опцию
Spinner selector = new Spinner(XActivity.this);
selector.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
selector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(final AdapterView<?> adapterView, View view, final int i, long l) {
runOnUiThread(new Runnable() {
@Override
public void run() {
X.getInstance().log("Selected item : " + adapterView.getItemAtPosition(i));
}
});
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(RegisterActivity.this, android.R.layout.simple_spinner_item, LIST);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
selector.setAdapter(dataAdapter);
selector.setPrompt("*removed*");
dataAdapter.notifyDataSetChanged();
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(XActivity.this);
dialogBuilder.setView(selector);
dialogBuilder.setTitle("*removed*");
dialogBuilder.setMessage("*removed*");
dialogBuilder.setPositiveButton("Set", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String selected = String.valueOf(selector.getSelectedItem());
X.getInstance().log("User selected " + selected + "");
}
});
dialogBuilder.setNegativeButton("Select Later", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// TODO }
});
dialogBuilder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
// TODO
}
});
AlertDialog b = dialogBuilder.create();
b.show();
Edit: Скриншоты
Можете ли вы показать скриншот? – TruongHieu
@TruongHieu Добавлены скриншоты. Вот как это выглядит, и как только я нажимаю «Приключение», он по существу закрывает счетчик, и ничего не выбрано. –
Я только что проверил ваш код, я заменил ваш X.getInstance(). Log() простым Log.d() и упрощен, вырезав ваш dialogBuilder.setButtons = он отлично работал – TWL