0

I make ArrayAdapter for AutoComleteTextView that outputs images as objects, but it output image id in selected item. How I can output image?

enter image description here enter image description here

adapter

class HitDicesSpinnerAdapter(context: Context, private val images: Array<Int>):
ArrayAdapter<Int>(context, R.layout.hit_dice_spinner_item, images) {

override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View {
    return getImageForPosition(position)
}

override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
    return getImageForPosition(position)
}

private fun getImageForPosition(position: Int): View{
    val imageView = ImageView(context)
    imageView.setImageResource(images[position])
    imageView.layoutParams = AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
    imageView.setColorFilter(MaterialColors.getColor(imageView, androidx.appcompat.R.attr.colorAccent))
    return imageView
}
}

xml:

        <com.google.android.material.textfield.TextInputLayout
            style="@style/Widget.Material3.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/hitDice">
            <com.google.android.material.textfield.MaterialAutoCompleteTextView
                android:id="@+id/hitDice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="none"/>
        </com.google.android.material.textfield.TextInputLayout>

implementation:

    val adapter = HitDicesSpinnerAdapter(requireContext(), arrayOf(R.drawable.d4, R.drawable.d6, R.drawable.d8, R.drawable.d10, R.drawable.d12, R.drawable.d20))
    binding.hitDice.setAdapter(adapter)
Davanok
  • 73
  • 1
  • 4

0 Answers0