0

我试图让一个按钮在单击时正常工作。对于基本示例,我正在使用天文台。使用 Android Studio 3.4.2,我可以在 Main Activity 的 Basic Activity 项目中使用此代码,它工作正常。当我将选项卡式活动放在片段、片段页面持有者或选项卡式活动的主要活动中时,相同的代码无法使用选项卡式活动。

基本活动的主要活动

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity;
import android.view.Menu
import android.view.MenuItem
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
mport kotlinx.android.synthetic.main.content_main.*

class MainActivity : AppCompatActivity() {

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

    val chronometer = chronometer
    val btnstart = (Button)rootView.findViewById(R.id.btnstart);
    btnstart.setOnClickListener(object : View.OnClickListener {

        override fun onClick(v: View) {
            chronometer.start()

        }
    })

}

选项卡式活动的片段(无论我把它放在哪里,它都不起作用)

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {

// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_retention, container, false)

}

这是我不断收到的调试错误:

PID:5241 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)”}

这里的建议似乎没有给我任何积极的结果,或者 onClickListener 在 Tabbed Activity Android 中不起作用

4

1 回答 1

1

那成功了。谢谢你。我把它放在inflater下的片段中:

    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_bph, container, false)} 

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    val chronometer = chronometer
    btnstart.setOnClickListener(object : View.OnClickListener {

        override fun onClick(v: View) {
            chronometer.start()
于 2019-07-29T04:14:57.887 回答