我如何在带有 Viewpager 和片段占位符的选项卡 Activity 中使用 OnClickListener
How do I us OnClickListener in a Tabbed Activity with Viewpager and Fragment Placeholder
我正在尝试让按钮在单击时正常工作。对于基本示例,我使用的是计时器。使用 Android Studio 3.4.2,我可以在 Main Activity 的 Basic Activity 项目中使用此代码,并且工作正常。当我将相同的代码放入片段、片段页夹或主 activity 中时,使用 Tabbed Activity 对我的 Tabbed Activity.
不起作用
基本 Activity 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()
}
})
}
Tabbed的片段Activity(无论我放在哪里,它都不起作用)
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 doesnt work in Tabbed Activity Android
成功了。谢谢你。我把它放在 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()
我正在尝试让按钮在单击时正常工作。对于基本示例,我使用的是计时器。使用 Android Studio 3.4.2,我可以在 Main Activity 的 Basic Activity 项目中使用此代码,并且工作正常。当我将相同的代码放入片段、片段页夹或主 activity 中时,使用 Tabbed Activity 对我的 Tabbed Activity.
不起作用基本 Activity 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()
}
})
}
Tabbed的片段Activity(无论我放在哪里,它都不起作用)
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 doesnt work in Tabbed Activity Android
成功了。谢谢你。我把它放在 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()