Intereting Posts
Добавить значок с заголовком в CollapsingToolbarLayout Основные настройки Samsung Galaxy S II AVD (Android Virtual Device)? Android: Mediaplayer: как использовать SurfaceView или медиаплеер для воспроизведения видео в правильном размере Использование библиотеки ViewPagerIndicator с Android Studio и Gradle Загрузить фотографию с помощью HttpPost MultiPartEntityBuilder Получение результата от службы намерения внутри пользовательского адаптера для просмотра списка Google Play In-App Purchase возвращает код ошибки -1008: null puchaseData или dataSignature Android-тамильский шрифт между английским словом Фрагмент замещения Android по-прежнему отображает часть замещенного фрагмента Добавление рамки или границы в ImageView и Drop-Shadow Как программно создавать и читать конфигурации WEP / EAP WiFi в Android? «Запуск эмулятора для AVD», затем Panic: не удалось открыть … » Как правильно использовать AsyncTask в Android Android: кнопка редактирования текста Android: доступ к string.xml с использованием имени переменной

Установить выбранный по умолчанию элемент диалогового окна оповещений ListView в Android

Я создал диалог с пользовательским ListView который моделирует дисплей Spinner , и изначально он начинается со значения «Выбрать пол».

Когда откроется диалоговое окно, оно предложит выбор (точно так же, как прядильщик). Если выбор снова выбран, он показывает те же параметры, но не указывает, какая опция уже выбрана.

Пример:
Значение по умолчанию: «Выбрать пол»
Диалог открывается без выбора
Пользователь выбирает: «Мужчина»
Пользователь повторно открывает диалог …
Диалог открывается без выбора

( Я бы хотел, чтобы у него был выбран «Мужской», поскольку это был их последний выбор )

Вот мой код:

 genderItems = getResources().getStringArray(R.array.gender_array); genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, genderItems); genderDrop.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN) { Builder genderBuilder = new AlertDialog.Builder(Register.this) .setTitle(R.string.gender_prompt) .setAdapter(genderAdapter, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { inputGender.setText(genderItems[which]); dialog.dismiss(); } }); AlertDialog genderAlert = genderBuilder.create(); genderAlert.show(); genderAlert.getListView().setSelection(0); } return false; } }); 

genderAlert.getListView().setSelection(0) не устанавливает значение по умолчанию, выбранное как «Мужской»,
genderAlert.getListView().setSelection(1) не устанавливает значение по умолчанию, выбранное как «Женский»,

Solutions Collecting From Web of "Установить выбранный по умолчанию элемент диалогового окна оповещений ListView в Android"

Догадаться:

Я переключился с .setAdapter на .setSingleChoiceItems которого есть аргумент для выбора по умолчанию. Тогда мне нужно было создать глобальную переменную, которая была настроена каждый раз, когда я нажимал опцию. Глобальная переменная изначально установлена ​​в -1, поэтому опция не выбрана, а затем, когда я нажимаю на что-то, она устанавливается в позицию, и при следующем создании диалога выбор отражает мой предыдущий выбор. Смотри ниже:

 Integer selection = -1; genderItems = getResources().getStringArray(R.array.gender_array); genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, genderItems); genderDrop.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN) { Builder genderBuilder = new AlertDialog.Builder(Register.this) .setTitle(R.string.gender_prompt) .setSingleChoiceItems(genderAdapter, selection, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { inputGender.setText(genderItems[which]); selection = which; dialog.cancel(); } }); AlertDialog genderAlert = genderBuilder.create(); genderAlert.show(); } return false; } });