I make ArrayAdapter for AutoComleteTextView that outputs images as objects, but it output image id in selected item. How I can output image?
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)