我想调用SettingsActivity类的 "gogo() "函数。为什么不能工作?
我曾经试图在没有 "this "的情况下访问gogo方法,但后来该方法被简单地取消了,没有错误。 SettingsActivity.kt:
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
class SettingsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.settings_activity)
val pref = PreferenceManager.getDefaultSharedPreferences(this)
val edt = pref.edit()
edt.clear();
edt.commit();
edt.putString("signature", "secretValue");
edt.commit();
supportFragmentManager
.beginTransaction()
.replace(R.id.settings, SettingsFragment())
.commit()
supportActionBar?.setDisplayHomeAsUpEnabled(true)
createListener()
private fun createListener() {
var listener =
SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
Log.v("TTTT","RRRRRRRRRRRRRRRRRRRRRRRR")
this@SettingsActivity.gogo() //tried also: gogo()
PreferenceManager.getDefaultSharedPreferences(applicationContext)
.registerOnSharedPreferenceChangeListener(listener)
fun gogo(){
Log.v("TTTT","UUUUUUUUUUUU")
Toast.makeText(getApplicationContext(), "LALALA", Toast.LENGTH_LONG).show()
class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.root_preferences, rootKey)