gpt4 book ai didi

android - 如何通过单击第一个 fragment 的按钮将消息从一个 fragment 发送到另一个 fragment ?

转载 作者:行者123 更新时间:2023-11-29 23:22:26 28 4
gpt4 key购买 nike

我试过这段代码,但点击第一个 fragment 中的按钮并没有改变第二个 fragment 中的字符串值。

这是第一个 fragment 的 kotlin 文件。它有两个按钮,点击它们可以更改字符串值。我还在此类中创建了一个内部接口(interface),即 OnButtonClickListener,如 Android 文档中所述。

viewHolder = inflater.inflate(R.layout.fragment_test_one, container, false)

viewHolder.btnFragTestOneMessageOne.setOnClickListener {
listener.onButtonCLickListener("MESSAGE ONE")
}

viewHolder.btnFragTestOneMessageTwo.setOnClickListener {
listener.onButtonCLickListener("MESSAGE TWO")
}

return viewHolder

这是第二个 fragment 。此 fragment 的布局还有一个 textView,必须在单击第一个 fragment 内的按钮时更改它。

lateinit var viewHolder: View

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
viewHolder = inflater.inflate(R.layout.fragment_test_two, container, false)
return viewHolder
}

这是 Activity 文件。

override fun onButtonCLickListener(strMessage: String) {
testTwoFragment.viewHolder.tvFragTestTwo.text = strMessage
}


override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fragment_test)

supportFragmentManager.beginTransaction().add(R.id.flFragTest, TestOneFragment()).commit()

btnTestFragOne.setOnClickListener {
supportFragmentManager.beginTransaction().replace(R.id.flFragTest, testOneFragment).commit()
}


btnTestFragTwo.setOnClickListener {
supportFragmentManager.beginTransaction().replace(R.id.flFragTest, testTwoFragment).commit()
}

}

最佳答案

然后将您的消息更改为字符串格式

使用Bundle发送字符串:

//Put the value
YourNewFragment ldf = new YourNewFragment ();
Bundle args = new Bundle();
args.putString("YourKey", "YourValue");
ldf.setArguments(args);

//Inflate the fragment
getFragmentManager().beginTransaction().add(R.id.container, ldf).commit();

在新的 Fragment 的 onCreateView 中:

//Retrieve the value
String value = getArguments().getString("YourKey");

关于android - 如何通过单击第一个 fragment 的按钮将消息从一个 fragment 发送到另一个 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54038090/

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