Короче говоря. Я хочу, чтобы мой счетчик всегда показывал один и тот же первый элемент «Добавить». Когда элемент выбран из списка, его следует удалить из списка и выполнить действие c. Текст «Добавить» все равно должен появиться на счетчике. Поэтому мой вопрос заключается в том, как заставить этот счетчик всегда показывать первый элемент в своем списке данных? PS. Я сделал так, чтобы первый элемент в списке не отображался, когда раскрывающийся список открыт.
Мой макет:
<Spinner
android:id="@+id/spinner_add"
style="@style/Widget.AppCompat.Spinner.Underlined"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/colorButton" />
Способ установки адаптера счетчика со списком данных:
private fun fillAddSpinner() {
val spinner: Spinner = findViewById(R.id.spinner_add)
val titles: MutableList<String> = ArrayList()
titles.add(resources.getString(R.string.add_advanced_filter))
for (filter in tableAdvancedFilters) {
titles.add(filter.title)
}
val dataAdapter = object : ArrayAdapter<String?>(this, R.layout.spinner_item,
titles as List<String?>
) {
override fun getDropDownView(
position: Int,
convertView: View?,
parent: ViewGroup
): View {
var v: View? = null
// If this is the initial dummy entry, make it hidden
if (position == 0) {
val tv = TextView(context)
tv.height = 0
tv.visibility = View.GONE
v = tv
} else { // Pass convertView as null to prevent reuse of special case views
v = super.getDropDownView(position, null, parent)
}
// Hide scroll bar because it appears sometimes unnecessarily, this does not prevent scrolling
parent.isVerticalScrollBarEnabled = false
return v!!
}
}
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = dataAdapter
}
Я хочу, чтобы он остался таким же, как и сейчас:
После того, как пользователь выберет один элемент из счетчика, я выполню определенные c варианты фильтров.