将按钮添加到面板视图时崩溃
我有以下显示面板的代码。它在面板上显示一个按钮,但一旦我为其分配一个单击处理程序,应用程序就会崩溃!
行上崩溃
Button button = (Button)findViewById(R.id.buttonclick);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hide();
}
});
它在 .setOnClickListener LogCat 显示 ... 09-22 14:54:09.953:错误/错误(7786):java.lang.NullPointerException 09-22 14:54:09.953: ERROR/Error(7786): at com.pinkfroot.leefinder.leeFinderMain$PopupPanel.(leeFinderMain.java:598)
进一步添加断点显示 R.id.buttonclick 有一个 id 但按钮为空。
I have the following code that shows a panel. It displays a button on the panel but as soon as I assign a Click Handler to it the app crashes!
It crashes on the line .setOnClickListener
Button button = (Button)findViewById(R.id.buttonclick);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hide();
}
});
LogCat shows...
09-22 14:54:09.953: ERROR/Error(7786): java.lang.NullPointerException
09-22 14:54:09.953: ERROR/Error(7786): at com.pinkfroot.leefinder.leeFinderMain$PopupPanel.(leeFinderMain.java:598)
Adding a breakpoint further down shows that R.id.buttonclick has an id but button is null.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从您的错误来看,似乎 findViewById 返回的 Button 作为空引用返回。在这种情况下,您的问题将出现在 findViewById (或传递给它的参数)中的某个位置。
From your error it sounds as if the Button returned by findViewById is coming back as a null reference. In which case your problem will be somewhere within findViewById (or the parameter passed to it).
此时您有
setContentView(R.layout.main);
。必须先调用此代码,然后才能通过
Button button = (Button)findViewById(R.id.buttonclick); 访问按钮。
At which point do you have
setContentView(R.layout.main);
.This code has to be invoked before you can access your button via
Button button = (Button)findViewById(R.id.buttonclick);