Spinner в диалоге не имеет опций - PullRequest
0 голосов
/ 28 марта 2020

Я создал DialogFragment с пользовательским макетом. Этот макет имеет AppCompactSpinner, который должен быть заполнен 4 вариантами. Вот код фрагмента:

class ReportDialog: DialogFragment () {

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    return activity?.let {
        val builder = AlertDialog.Builder(it)
        builder.setView(R.layout.fragment_report_dialog)
        builder.create()
    } ?: throw IllegalStateException("Activity cannot be null!")
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    view.reportSpinner.adapter = ArrayAdapter(
        requireContext(),
        R.layout.dropdown_menu_popup_item,
        arrayOf(
            "Option1",
            "Option2",
            "Option3",
            "Option4"
        )
    )
    view.reportSpinner.setSelection(0)
}

} Я использую этот фрагмент внутри своей деятельности, чтобы показать диалог по нажатию кнопки. Все работает отлично, кроме счетчика пустого без вариантов. Что я делаю не так?

1 Ответ

0 голосов
/ 28 марта 2020

onViewCreated никогда не вызывается, поэтому вам нужно поместить логи создания адаптера счетчика c внутри onCreateDialog следующим образом:

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    return requireContext().let {
        val builder = AlertDialog.Builder(it)
        builder.setView(getDialogSpinner())
        builder.create()
    } ?: throw IllegalStateException("Activity cannot be null!")
}

private fun getDialogSpinner(): View {
    val view = LayoutInflater.from(requireContext()).inflate(R.layout.item, null)
    view.coolSpinner.adapter = ArrayAdapter(
        requireContext(),
        android.R.layout.simple_spinner_item,
        arrayOf(
            "Option1",
            "Option2",
            "Option3",
            "Option4"
        )
    )
    view.coolSpinner.setSelection(0)
    return view
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...