自昨天以来,我一直试图弄清楚这个问题,但我没有到达任何地方。教程显示使用按钮调用popupwindow dismiss函数但是我有一个MenuItem创建弹出窗口,窗口内是一个取消按钮。我希望在按下取消按钮时关闭窗口。 这是代码
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.ResetP:
passwordWindow();
break;}
passwordWindow()的代码
private void passwordWindow()
{
layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
ViewGroup container = (ViewGroup) layoutInflater.inflate(R.layout.password_layout,null);
popupWindow = new PopupWindow(container,(int)(width * .6),(int)(height*.3),false);
popupWindow.showAtLocation(relativeLayout, Gravity.NO_GRAVITY,(int)(width * .2),(int)(height *.3));
Button btn = (Button) findViewById(R.id.btn_cancel);//This button is in password_layout.xml file
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
popupWindow.dismiss();
}
});
}
我的密码窗口有一个确定按钮和一个取消按钮,我希望在按下取消按钮时窗口关闭但是我收到此错误
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'
这让我把头发拉出来,有人可以帮帮我 感谢
答案 0 :(得分:3)
Button btn = (Button)container.findViewById(R.id.btn_cancel);//This button is in password_layout.xml file
添加容器 .findViewById ...