【问题标题】:Button Click to change view in Fragment - Kotlin按钮单击以更改片段中的视图 - Kotlin
【发布时间】:2020-11-04 03:17:42
【问题描述】:

我有以下几点:

class SettingsFragment : Fragment() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
}

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_settings, container, false)
    val auth = FirebaseAuth.getInstance()

    signOutButton.setOnClickListener{
        Log.i("TAG", "logout tapped")
        auth.signOut()
        startActivity(Intent(activity,LoginActivity::class.java))
    }
}
}

视图加载,但是当我点击按钮将用户注销时,我没有看到日志打印出来,用户也没有注销,并且视图没有切换到loginActivity()

我的按钮:

<Button
    android:id="@+id/signOutButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sign out" />

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    由于您已经返回了视图,因此将永远不会调用其余的行。这是无法到​​达的。 return 在函数的末尾。此外,您需要在创建视图后设置点击侦听器(onViewCreated),否则您将获得NullPointerException

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_settings, container, false)
    }
    
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        
        val auth = FirebaseAuth.getInstance()
    
        signOutButton.setOnClickListener{
            Log.i("TAG", "logout tapped")
            auth.signOut()
            startActivity(Intent(activity,LoginActivity::class.java))
        }
    }
    

    【讨论】:

      【解决方案2】:

      覆盖 onViewCreated() 函数并在那里写下您的退出代码,同时初始化 signOutButton。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-18
        • 2016-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多