我有两个片段,首先(start_fragment)应显示应用程序何时启动,并具有2个按钮,1个按钮用于关闭应用程序(declineButton),第二个隐藏此片段并显示主片段(webview_fragment).如果用户按同意按钮,应用程序下次启动时间已在主片段中(webview_fragment).我如何保存该用户按下同意按钮?我试图创建布尔变量,但不能'I don“我无法想象如何将fragment中button的新值放到mainactivity中的变量中。
MainActivity.kt
package com.example.webviewapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
var firstlauch: Boolean = true
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (firstlauch == true) {
supportFragmentManager
.beginTransaction()
.replace(R.id.fullcreen_holder, start_fragment())
.commit()
} else {
supportFragmentManager
.beginTransaction()
.replace(R.id.webview_holder, webview_fragment())
}
}
}
起始片段.kt
package com.example.webviewapp
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
class start_fragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.layout_start_fragment, container, false)
val agreeButton: Button = view.findViewById(R.id.privacy_agree)
val declineButton: Button = view.findViewById(R.id.privacy_decline)
agreeButton.setOnClickListener {
val fragment = webview_fragment()
val transaction = fragmentManager?.beginTransaction()
transaction?.remove(this)?.replace(R.id.webview_holder, fragment)?.commit()
}
declineButton.setOnClickListener {
requireActivity().finishAndRemoveTask()
}
return view
}
}
1条答案
按热度按时间3lxsmp7m1#
您可以使用sharedPreferences来保存小数据。
在主要活动中
在片段中