如何使数据表单API不在Spinner中重新加载

时间:2019-05-02 09:28:49

标签: android kotlin breadcrumbs

我遇到了问题,因此我创建了一个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​​的微调器不会再次加载

0 个答案:

没有答案