我遇到了问题,因此我创建了一个4页的面包屑,但它仅使用1个片段。因此4页仅调用1版面。但在布局方面,我使用可见性将其分为4部分。第一个布局中的问题是,我有2个微调器,第一个微调器中的数据是静态的,第二个微调器中的数据来自数据库,我使用API对其进行了调用。当我已经在两个微调器中都选择了项目之后,然后滑入下一页,第二个微调器中的数据将再次重新加载。所以选择的价值就变成了不被选择。但是第一个微调器仍然保持我想要的静止状态。
如果它为null,但我已经给微调框验证,但结果仍然相同,它将重新加载。
这是我在viewCreated上的代码
if (arguments?.getInt(ARG_STEP_NUMBER)==0){
dataMotor.visibility = View.VISIBLE
}else if (arguments?.getInt(ARG_STEP_NUMBER)==1){
dataPembayaran.visibility = View.VISIBLE
}else if (arguments?.getInt(ARG_STEP_NUMBER)==2){
dataAsuransiDendaWilayah.visibility = View.VISIBLE
}else if (arguments?.getInt(ARG_STEP_NUMBER)==3){
dataPembeli.visibility = View.VISIBLE
dataFakturSTNK.visibility = View.VISIBLE
dataDokumen.visibility = View.VISIBLE
}
/*Spinner*/
getSeries()
getOtr()
这是第一个使用静态数据的微调器。
fun getOtr(){
val data = dataOTR
val adapter = CustomAdapter<String?>(activity,
R.layout.spinner_custom, R.layout.spinner_dropdown_item, data)
spnOTR?.adapter = adapter
if(spnOTR.getSelectedItem()==null){
Toast.makeText(context, "Nothing selected",
Toast.LENGTH_SHORT).show()
}else{
spnOTR?.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(parentView: AdapterView<*>,
selectedItemView: View, position: Int, id: Long) {
selectedOTR = dataOTR?.get(position).toString()
}
override fun onNothingSelected(parentView: AdapterView<*>) {
}
}
}
}
这是第二个使用API的微调器
fun getSeries(){
APIMDM.getSeries().enqueue(object : Callback<Series> {
override fun onResponse(call: Call<Series>, response:
Response<Series>) {
if (response.code() == 200)
{
dataSeries = ArrayList()
dataSeries?.add(0, null)
response.body()?.data?.forEach { dataSeries?.add(it) }
val adapter = CustomAdapter<SeriesItem?>(activity,
R.layout.spinner_custom, R.layout.spinner_dropdown_item,
dataSeries?.toTypedArray()!!)
spnSeries?.adapter = adapter
}else{
Toast.makeText(context, "Error Series",
Toast.LENGTH_SHORT).show()
}
}
override fun onFailure(call: Call<Series>, throwable: Throwable) {
Toast.makeText(context, "Please check your connection",
Toast.LENGTH_SHORT).show()
}
})
if (spnSeries.getSelectedItem()==null){
Toast.makeText(context, "Nothing selected",
Toast.LENGTH_SHORT).show()
}else{
spnSeries?.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(parentView: AdapterView<*>,
selectedItemView: View, position: Int, id: Long) {
selectedSeries =
dataSeries?.get(position)?.series.toString()
}
override fun onNothingSelected(parentView: AdapterView<*>) {
}
}
}
}
我希望第二个使用API的微调器不会再次加载