Создайте всплывающий список для заполнения текстового представления

#android #xml #android-layout #layout

Вопрос:

Я новичок в Android studio и макетах, я пытаюсь воссоздать что-то, что я даже не знаю, как это называется, что затрудняет поиск ответов. Я воссоздал на изображении ниже то, чего я пытаюсь достичь :

Моя идея макета

Что я хотел бы сделать, так это 1 : Создать текстовое представление с просьбой выбрать что-то. 2 : Когда мы нажимаем на него, появляется всплывающее окно, отображающее различные вещи на выбор, мы могли бы прокрутить эти вещи, если список длинный. 3 : Затем при нажатии на нужную нам вещь наш выбор отображается в текстовом представлении.

После некоторых исследований самое близкое, что я нашел,-это «выпадающее меню», но оно на самом деле не соответствует тому, к чему я стремлюсь (отображается под текстом вместо всплывающего окна, нет возможности прокручивать внутри, если список вещей длинный, по крайней мере, для учебника, который я нашел).

Ответ №1:

Вы можете использовать AlertDialog и setItems для передачи строки массива.

 val builder = AlertDialog.Builder(this)
builder.setTitle(R.string.pick_color)
        .setItems(R.array.colors_array,
                  DialogInterface.OnClickListener { dialog, which ->
                            // The 'which' argument contains the index position
                            // of the selected item
         })
builder.create()
 

Где R.array.colors_array находится ваш массив, вы можете определить его в XML или программно.

Пожалуйста, проверьте это

Комментарии:

1. О, большое спасибо ! Кажется, это то, что я искал ! Я попробую это позже этим вечером и расскажу вам, удастся ли мне это сделать 🙂 Если у вас длинный массив, список будет прокручиваться ?

2. Это сработало как волшебство, большое вам спасибо 🙂

3. @Tritize да, он будет прокручиваться, приятно вам помочь 🙂