程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了导航到 kotlin java大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决导航到 kotlin java?

开发过程中遇到导航到 kotlin java的问题如何解决?下面主要结合日常开发的经验,给出你关于导航到 kotlin java的解决方法建议,希望对你解决导航到 kotlin java有所启发或帮助;

这是我开发的一个App的基本配置。此应用有两个片段 FirstFragmentSecondFragment,包含在 <FrameLayout 的 @H_815_3@mainActivity 中。 SecondFragment 必须始终显示包含物品的回收站视图

问题

我第一次点击 go to Second Fragment 按钮(在 First Fragment 中)时,它确实会在第二个 Fragment 中显示 recyclervIEw。

问题是,无论何时我返回(向上导航)并再次单击该按钮...第二个片段中不再出现 recyclervIEw。

在这个例子的更高级的版本中,我需要从另一个活动进入 MainActivity,或者改变手机的方向,才能再次显示带有项目的回收视图,当点击按钮时,在第二个片段中...

activity_main.xml

<relativeLayout>
   <FrameLayout
        androID:ID="@+ID/fragment_container"
        androID:layout_wIDth="match_parent"
        androID:layout_height="match_parent" />
 </relativeLayout>

firts_fragment.xml

 <relativeLayout>
    <button
        androID:ID="@+ID/buttonToSF"
        androID:gravity="center"
        androID:text="Go to Second Fragment" />
</relativeLayout>

second_fragment.xml

<relativeLayout>
    <androIDx.recyclervIEw.Widget.RecyclerVIEw
        androID:ID="@+ID/rvItemsList"
        androID:BACkground="#000"
        androID:layout_wIDth="match_parent"
        androID:layout_height="400dp" />
</relativeLayout>

item.xml

   <CardVIEw>
        <TextVIEw
            androID:ID="@+ID/tvWord"
            androID:layout_wIDth="wrap_content"
            androID:layout_height="wrap_content"
            androID:text="Word" />
  </CardVIEw>

@H_951_15@mainActivity.kt

class MainActivity : AppCompatActivity() {

    private val firstFragment = FirstFragment()
    private val firstFragmentTAG_name = "FirsT_FRAGMENT_TAG"

    overrIDe fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceStatE)
        setContentVIEw(R.layout.activity_main)

        //go to first fragment by default
        val transaction = supportFragmentManager.begintransaction()
        transaction.replace(R.ID.fragment_container,firstFragment,firstFragmentTAG_Name)
        transaction.commit()
    }

    fun callrvAdapter(context: Context) {
        val arrayItems = ArrayList<Mymodel>()

        arrayItems.add(Mymodel("Verbs"))
        arrayItems.add(Mymodel("Nouns"))
        arrayItems.add(Mymodel("Adverbs"))

        rvItemsList.layoutManager = linearlayoutmanager(context)
        rvItemsList.adapter = MyAdapter(arrayItems,context)
    }

    fun getToSecondFragment() {
        val secondFragment = SecondFragment()
        val secondFragmentTAGname = "SECOND_FRAGMENT_TAG"

        val transaction = supportFragmentManager.begintransaction()
        transaction.replace(R.ID.fragment_container,secondFragment,secondFragmentTAGName)
        transaction.addToBACkStack(null)
        transaction.commit()
    }
}

FirstFragment.kt

class FirstFragment: Fragment() {

    overrIDe fun onCreateVIEw(
        inflater: LayoutInflater,container: VIEwGroup?,savedInstanceState: Bundle?
    ): VIEw? {
        val vIEw = inflater.inflate(R.layout.first_fragment,container,falsE)

        return vIEw
    }

    overrIDe fun onActivityCreated(savedInstanceState: Bundle?){
        super.onActivityCreated(savedInstanceStatE)

        buttonToSF.setonClickListener{
            (activity as MainActivity).getToSecondFragment()
        }
    }
}

SecondFragment.kt

class SecondFragment: Fragment() {

    overrIDe fun onCreateVIEw(
        inflater: LayoutInflater,savedInstanceState: Bundle?
    ): VIEw?{
        val vIEw =  inflater.inflate(R.layout.second_fragment,falsE)

        return vIEw
    }

    overrIDe fun onActivityCreated(savedInstanceState: Bundle?){
        super.onActivityCreated(savedInstanceStatE)

        (activity as MainActivity).callrvAdapter(requireContext())
    }
}

@H_951_15@mymodel.kt

 class Mymodel(val hm_title:string)

我的适配器

class MyAdapter(val arrayList: ArrayList<Mymodel>,val context: Context) :
     RecyclerVIEw.Adapter<MyAdapter.VIEwHolder>() {

    class VIEwHolder(itemVIEw: VIEw) : RecyclerVIEw.VIEwHolder(itemVIEw) {
        fun bindItems(model: Mymodel){
            itemVIEw.tvWord.text = model.hm_title
        }
    }

    overrIDe fun onCreateVIEwHolder(parent: VIEwGroup,vIEwType: int): VIEwHolder {
        val v = LayoutInflater.from(parent.context).inflate(R.layout.item,parent,falsE)
        return VIEwHolder(v)
    }

    overrIDe fun onBindVIEwHolder(holder: VIEwHolder,position: int) {
        holder.bindItems(arrayList[position])
    }

    overrIDe fun getItemCount(): Int {
        return arrayList.size
    }
}

到目前为止,这是我所拥有的......我需要函数 callrvAdapter() 始终保持在 @H_815_3@mainActivity 中,并且始终从第二个片段中调用该函数。

做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的导航到 kotlin java全部内容,希望文章能够帮你解决导航到 kotlin java所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。