4

I'm trying to add a spinner inside an alert using anko. My code so far looks like this:

alert(getString(R.string.alert)) {
            positiveButton("Cool") { toast("Yess!!!") }
            customView {
                linearLayout {

                    textView("I'm a text")
                    padding = dip(16)
                    orientation = LinearLayout.VERTICAL
                    spinner(R.style.Widget_AppCompat_Spinner) {
                        id = R.id.spinner_todo_category
                        prompt = "Select a Category"
                    }



                }
            }
        }.show()

but I get compilation errors because apparently that's not how to call a spinner. I've been looking at the docs (Anko GitHub Wiki) but it says nothing about spinners.

Thanks in advance

Carla Urrea Stabile
  • 869
  • 1
  • 11
  • 35

2 Answers2

2

One solution :

class AddActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val items = listOf(Friend("bla","bla",50),Friend("bla","bla",50));

        val adapterFriends = ArrayAdapter(this,R.layout.mon_spinner,items)

        verticalLayout {

            val friends = spinner {  adapter = adapterFriends  }

            val wine = editText()

            button("Say Hello") {
                onClick { toast("Hello, ${wine.text}!") }
            }
        }
    }
}

with this layout (mon_spinner.xml) :

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="14sp"
    android:textColor="@color/colorPrimary"
    android:spinnerMode="dialog"
    android:text="XXX"
    />

It's all right !!

wlh
  • 3,426
  • 1
  • 16
  • 32
  • As in the other answer: you could also use `android.R.layout.simple_spinner_dropdown_item` if you don't want to create a layout yourself. – Abby May 11 '18 at 08:21
0

Try this in your AnkoComponent:

spinner {
    adapter = ArrayAdapter.createFromResource(
            ctx,
            R.array.your_string_array,
            android.R.layout.simple_spinner_dropdown_item)
}
Duy Tran
  • 33
  • 5