【发布时间】:2018-07-06 00:55:07
【问题描述】:
我使用与本教程匹配的选项卡布局:
tab layout tutorial androidhive
它工作正常,但是当我向 fragment_one.xml 添加一个按钮时,我不能对这个按钮使用 setOnClickListener 因为 findViewById 在 MainActivity.java 中不起作用
MainActivity 波纹管代码:
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action",Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
});
}
应用因以下错误而停止: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener”
按钮应该在哪里定义和setOnClickListener?
【问题讨论】:
-
按钮在哪里?显示你的布局
-
您必须在片段类中找到按钮并为它设置 onclick 侦听器,而不是在活动中
-
按钮在 fragment_one.xml @DroiDev
标签: android fragment android-tablayout