Как сделать так, чтобы API формы данных не перезагружался в спиннер - PullRequest
0 голосов
/ 02 мая 2019

У меня проблема, поэтому я создаю панировочные сухари с 4 страницами, но он использует только 1 фрагмент.поэтому 4 страницы вызывают только 1 макет.но макет я делю на 4 части используя видимость исчезла.Проблема в первом макете, у меня есть 2 счетчика, данные в первом счетчике статичны, а данные во втором счетчике взяты из базы данных, которую я называю с помощью API.Когда я уже выбрал элемент в обоих вращателях, а затем перехожу на следующую страницу, данные во втором вращателе снова перезагружаются.Таким образом, значение, которое выбрано, становится не выбранным.Но первый счетчик остается на месте, как я хочу.

Я уже даю подтверждение счетчика, если он равен нулю, но результат все тот же, он снова загружается.

Это мой код на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 не будет перезагружаться снова

...