我创建了一个Preference
以允许用户注销。这就是我的root_preferences.xml
:
<Preference
android:icon="@drawable/ic_logout"
android:key="logout_preference"
app:allowDividerAbove="true"
app:allowDividerBelow="true"
app:singleLineTitle="true"
app:title="Log Out" />
在我的SettingsActivity
中,我有这样的代码:
val logOutPreference: Preference = findPreference("logout_preference")!!
logOutPreference.onPreferenceClickListener =
Preference.OnPreferenceClickListener {
FirebaseAuth.getInstance().signOut()
val intent = Intent(this, MainActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK.or(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
true
}
问题是它不允许我在OnPreferenceClickListener
中创建Intent
,当我删除Intent
代码并只保留auth.signOut()
时,我的应用程序会崩溃。我该如何解决这个问题?我想要它,这样当用户进入Settings
屏幕时,他们可以点击log_preference
,它会将他们从应用程序中注销。
在您的lamba内部,this
指的是点击侦听器。像这样更改
val intent = Intent(this@ActivityNameHere, MainActivity::class.java)
其中ActivityNamerHere
是活动的名称。
编辑:如果你在一个片段中,那么到这个
val intent = Intent(requireContext(), MainActivity::class.java)