Android выход из студии: очистить сохраненные настройки kotlin - PullRequest
2 голосов
/ 23 февраля 2020

У меня есть одно основное действие с кнопкой входа в систему, и я сохраняю токен, когда пользователь входит в систему (сохраненные настройки). Если пользователь вошел в систему, приложение сразу перейдет ко второму виду активности - SearchActivity. Я добавил кнопку выхода, но не могу заставить ее работать. Я хочу выпустить сохраненный токен. Я новичок в Kotlin и Android, поэтому любая помощь будет очень полезна.

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        login_button.setOnClickListener {
            buttonClicked()
        }

        if (getTokenFromPrefs()?.length!! > 0) {
            openSearchActivity()
        }
    }

    private fun buttonClicked() {
        val username = username_edittext.text.toString()
        val password = password_edittext.text.toString()

        val call = RequestManager.service.login(username, password)
        call.enqueue(object : Callback<List<LoginResponse>> {
            override fun onResponse(
                call: Call<List<LoginResponse>>,
                response: Response<List<LoginResponse>>
            ) {
                loader.visibility = View.GONE
                if (response.isSuccessful) {
                    openSearchActivity()
                    saveTokenToPrefs("token")
                } else {

                }
            }

            override fun onFailure(call: Call<List<LoginResponse>>, t: Throwable) {
                loader.visibility = View.GONE
            }
        })
    }

    val TOKENPREFSKEY = "tokenprefskey"
    private fun saveTokenToPrefs(token: String) {
        val pref = applicationContext.getSharedPreferences("CGEEnergy", 0)
        val editor = pref.edit()
        editor.putString(TOKENPREFSKEY, token)
        editor.commit()
    }

    private fun getTokenFromPrefs(): String? {
        val pref = applicationContext.getSharedPreferences("CGEEnergy", 0)
        return pref.getString(TOKENPREFSKEY, "")
    }

    private fun openSearchActivity() {
        val intent = Intent(this, SearchActivity::class.java)
        startActivity(intent)
        finish()
    }

Мой класс поисковой активности таков (пока пуст):

class SearchActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_search)


    }

    override fun onResume() {
        super.onResume()
    }
}

Ответы [ 2 ]

2 голосов
/ 23 февраля 2020

Может быть попробовать это:

applicationContext.getSharedPreferences("CGEEnergy", 0).edit().clear().commit()
1 голос
/ 23 февраля 2020

, чтобы удалить общие настройки, которые вы можете использовать

context.deleteSharedPreferences("CGEEnergy")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...