Кнопка «Выйти» в android фракциях не работает Kotlin - PullRequest
0 голосов
/ 09 апреля 2020
package com.app.myproject.Fragments

import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.app.myproject.LoginActivity
import com.google.firebase.auth.FirebaseAuth
import kotlinx.android.synthetic.main.activity_login.*

import com.app.myproject.R
import com.app.myproject.RegisterActivity
import kotlinx.android.synthetic.main.fragment_settings.*


/**
 * A simple [Fragment] subclass.
 */
class SettingsFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? = inflater.inflate(R.layout.fragment_settings, container, false)

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        view.findViewById(R.id.signout_button).setOnClickListener {
            FirebaseAuth.getInstance().signOut()
            val intent  = Intent(this@SettingsFragment.context, LoginActivity::class.java)
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
            startActivity(intent)

        }
    }
}


Это мой код. Я использую Firebase для учетных записей пользователей. У меня есть форма настроек в следующем фрагменте: https://prnt.sc/rvs5yn

Когда я нажимаю кнопку выхода, ничего не происходит. Я следовал некоторому коду, который я нашел в stackoverflow о том, как заставить работать с фрагментами.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 09 апреля 2020

Ваш код недоступен, так как вы написали его после оператора return, поэтому вам нужно получить доступ к раздутому представлению из метода onViewCreated.

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? = inflater.inflate(R.layout.fragment_settings, container, false)

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    view.findViewById<View>(R.id.signout_button).setOnClickListener {
        ... // Paste your code here
    }
}
...