Передача данных между фрагментами - PullRequest
0 голосов
/ 06 июня 2018

Я разрабатываю ресторанную программу.У меня проблема.Теперь я расскажу вам о событиях, которые происходят при выборе товара

**. Приложение состоит из двух фрагментов.Название деятельности - «МасаДетай».FragmentOne зовут 'MasaUrunler', FragmentTwo зовут 'MasaAdisyon' **

Действия во фрагменте 'MasaUrunler'

  1. Я беру продукты из базы данныхс Volley, и я перечисляю их на экране благодаря RecycleView
  2. Я печатаю перечисленные продукты, и я выбираю количество, порцию и свойства этих продуктов в другой деятельности
  3. Я получаю все данныев функции onActivityResult
  4. Я отправляю данные, хранящиеся в массиве, в другой фрагмент

Во фрагменте 'MasaAdisyon' происходят следующие события

Я делаю события LayoutManager в onCreateView и привязываю адаптер и RecycleViewAdapter

Я смотрю на размер массива в функции getItemCount в RecyclerViewAdapter . На этом шаге новые данные не поступают в RecycleViewAdapter

MasaUrunler Kotlin Codes

var ADISYONLISTESI = ArrayList<AdisyonListesiBilgileri>()
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 1){
            var gecici = AdisyonListesiBilgileri(
                    data?.extras!!.getDouble("MIKTAR"),
                    data?.extras!!.getDouble("PORSIYON"),
                    data?.extras!!.getSerializable("URUNANABILGILERI") as UrunBilgileri,
                    data?.extras!!.getSerializable("SECILENOZELLIKLER") as ArrayList<secilenOzellikler>,
                    data?.extras!!.getSerializable("OZELLIKLISTESI") as ArrayList<UrunOzellikBilgileri>,
                    0,
                    0,
                    null,
                    null,
                    null
            )
            ADISYONLISTESI.add(gecici)
            var bundle = Bundle()
            bundle.putSerializable("ADISYONLISTESI",ADISYONLISTESI)
            var masaAdisyon = MasaAdisyon()
            masaAdisyon.arguments = bundle
            var fragmentManager = getFragmentManager()
            fragmentManager?.beginTransaction()?.detach(masaAdisyon)?.attach(masaAdisyon)?.commit()
        }
}

Коды MasaAdisyon Kotlin

var adapter : MasaAdisyonListesiAdapter? = null
var ADISYONLISTESI = ArrayList<AdisyonListesiBilgileri>()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {

    var thisView = inflater.inflate(R.layout.fragment_masa_adisyon, container, false)
    var args = arguments
    var layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
    thisView?.findViewById<RecyclerView>(R.id.masaAdisyonListesiRecycle)?.layoutManager = layoutManager
    adapter = MasaAdisyonListesiAdapter(ADISYONLISTESI)
    if(args?.getSerializable("ADISYONLISTESI") != null){
        ADISYONLISTESI = args?.getSerializable("ADISYONLISTESI") as ArrayList<AdisyonListesiBilgileri>
        adapter?.notifyDataSetChanged()
    }
    thisView?.findViewById<RecyclerView>(R.id.masaAdisyonListesiRecycle)?.adapter = adapter
    return thisView
}
inner class MasaAdisyonListesiAdapter(_ADISYONLISTESI : ArrayList<AdisyonListesiBilgileri>) : RecyclerView.Adapter<MasaAdisyonListesiAdapter.MasaAdisyonListesiViewHolder>(){
    var ADISYONLAR = _ADISYONLISTESI
    override fun getItemCount(): Int {
        Log.e("ADISYONBOYUTU",ADISYONLAR.size.toString())
        return ADISYONLAR.size
    }
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MasaAdisyonListesiViewHolder {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    }
    override fun onBindViewHolder(holder: MasaAdisyonListesiViewHolder, position: Int) {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    }
    inner class MasaAdisyonListesiViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView) {

    }
}

** Я ожидаю ваших ответов для решения.Спасибо *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...