我試圖盡可能簡化我的問題,我希望很清楚我在問什么。
我想在片段中通過 B 類的 onClickEvent 函式修改變數 pto1 的值。我知道這樣做是不可能的,因為當我有
val classA = A ()
在片段中,重新創建了類 A 的新實體,并重新創建了新的 pto1 并將其設定為 0.0 。
使用 B 類修改片段后,如何從片段訪問 pto1?
class A {
var pto1 = 0.0
fun changeValue(a: Double){
pto1 = a
}
}
--------------------------------
class B {
val classA = A()
fun onClickEvent(b:Double){
classA.changeValue(b)
}
}
--------------------------------
fragment D {
val classA = A()
onCreateView( ... ){
val botton = view.findViewById<Button>(R.id.button)
button.setOnClickListner{
val f = classA.pto1
}
}
}
uj5u.com熱心網友回復:
這里有幾個選項
讓它成為靜態的
class A {
companion object {
var pto1 = 0.0
}
}
這是視圖模型問題嗎?
使用 navgraph 視圖模型或活動中的視圖模型。
使其持久化:您可以使用SharedPreferences
或 ROOM 來保存它。
使兩個片段的主機都擁有它,然后片段可以訪問它。如果主機是活動:
class MyActivity {
val a = A()
fun getA() = a
}
(requireActivity() as? MyActivity).?getA()
這是導航結果嗎?看看這里如何使用導航架構組件從片段中獲取結果?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507358.html