如何使 android 微调器始终显示相同的项目而不是更改
How to make android spinner show same item always instead of changing
长话短说。我希望我的微调器始终显示相同的第一项 "Add"。当从列表中选择项目时,它应该从列表中消失并发生特定操作。文本 "Add" 仍应出现在微调器上。所以我的问题是如何让微调器始终在他的数据列表中显示第一项? 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" />
用数据列表设置spinner适配器的方法:
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
}
我希望它和现在一样:
用户从微调器中选择一项后,我将呈现特定的过滤器选项。
如果您想以编程方式设置微调器选定项,请使用以下命令:spinnerObject.setSelection(INDEX_OF_ITEM)
长话短说。我希望我的微调器始终显示相同的第一项 "Add"。当从列表中选择项目时,它应该从列表中消失并发生特定操作。文本 "Add" 仍应出现在微调器上。所以我的问题是如何让微调器始终在他的数据列表中显示第一项? 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" />
用数据列表设置spinner适配器的方法:
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
}
我希望它和现在一样:
用户从微调器中选择一项后,我将呈现特定的过滤器选项。
如果您想以编程方式设置微调器选定项,请使用以下命令:spinnerObject.setSelection(INDEX_OF_ITEM)