Переслать один фрагмент другому фрагменту в Котлине - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть два фрагмента в моей основной деятельности.Если я щелкну один элемент фрагмента, то он должен перейти к другому следующему фрагменту.Если его активность к активности, тогда я могу использовать намерение, и если это связано с фрагментом, то я не уверен.Любая помощь приветствуется.

Используемый язык

Kotlin

Фрагменты

OneFragement----->SecondFragment

Код

Класс адаптера

itemView.setOnClickListener {

            Log.d("Test Clicked","Test Clicked")
        }

FragmentOne

val ft = fragmentManager!!.beginTransaction()
    ft.replace(R.id.Two, SecondFragment(), "NewFragmentTag")
    ft.commit()

1 Ответ

0 голосов
/ 31 декабря 2018

In MainActivity

fun replaceFragment(fragment: Fragment, tag: String) {
    supportFragmentManager.beginTransaction()
        .replace(R.id.container, fragment, tag).addToBackStack("").commit()
}

In FragmentTwo

class FragmentTwo:Fragment(){

 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
   //your  code
}
 companion object {
    val TAG = FragmentTwo::class.java.simpleName
    @JvmStatic
    fun newInstance() = FragmentTwo()
  }
}

In FragmentOne

class FragmentOne:Fragment(){

 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
   //your  code
}

fun onItemSelected(){
    val frag=FragmentTwo.newInstance()
    (activity as MainActivity).replaceFragment(frag,FragmentTwo.TAG)
}
 companion object {
    val TAG = FragmentOne::class.java.simpleName
    @JvmStatic
    fun newInstance() = FragmentOne()
  }
}

В классе адаптеров :

itemView.setOnClickListener{
    frag.onItemSelected()
}
...