gpt4 book ai didi

android - 在数据 fragment 之间传递数据

转载 作者:行者123 更新时间:2023-12-02 13:33:57 30 4
gpt4 key购买 nike

嗨,我制作了一个应用,并尝试在一个应用中的两个片段之间传递数据

nav_graph.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/title2">
<fragment
android:id="@+id/title2"
android:name="com.example.order10.title"
android:label="title" >
<action
android:id="@+id/action_title2_to_pageone"
app:destination="@id/pageone" />
</fragment>
<fragment
android:id="@+id/pageone"
android:name="com.example.order10.pageone"
android:label="pageone" >
<action
android:id="@+id/action_pageone_to_finalpage"
app:destination="@id/finalpage" >
<argument android:defaultValue="Hi"
android:name="text" />
</action>
</fragment>
<fragment
android:id="@+id/finalpage"
android:name="com.example.order10.finalpage"
android:label="fragment_finalpage"
tools:layout="@layout/fragment_finalpage" >
<argument
android:name="order_text"
app:argType="string"
android:defaultValue="Hi" />
</fragment>
<fragment
android:id="@+id/about"
android:name="com.example.order10.about"
android:label="Order 1.0" />
</navigation>

用于传递数据的代码
fun navigation(text:String){
var args= bundleOf()
args.putString("order_text",text)
view?.findNavController()?.navigate(R.id.action_pageone_to_finalpage,args)


} navigation("This is order one ")

接收数据的代码
 val order_text:TextView?=view?.findViewById(R.id.order_text)
order_text?.text=arguments?.getString("order_text")

但是它不起作用甚至不显示默认文本,我已经应用了所有插件和依赖项

最佳答案

用于将数据change传递给此代码的代码:

fun navigation(text:String){

val args = bundleOf("order_text" to text)
view?.findNavController()?.navigate(R.id.action_pageone_to_finalpage,args)
}

用于接收数据change的代码:
val receiveData = arguments?.getString("order_text")!!

val order_text:TextView?=view?.findViewById(R.id.order_text)
order_text?.text=receiveData

更新:

将您的 finalPage更改为:
class finalpage : Fragment() {


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

return inflater.inflate(R.layout.fragment_finalpage, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

val receiveData = arguments?.getString("order_text")!!
val order_text:TextView?=view.findViewById(R.id.order_text)
order_text?.text=receiveData
}
}

您可以在定义 View 后使用组件

关于android - 在数据 fragment 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59622490/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com