MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.wid

昨天在敲代码的时候遇到这个问题搞了半天,今天下午又看看,终于解决了。完整的错误是这样的:

281 12851-12851/chapter05.qst.com.mobileguard E/InputEventReceiver: Exception dispatching input event.
281 12851-12851/chapter05.qst.com.mobileguard E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
281 12851-12851/chapter05.qst.com.mobileguard E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
 

主要问题是:

本来准备在主界面点击按钮时弹出一个对话框,用来输入和确认密码,在弹出框下面点击取消或确认,最后关闭对话框。但是一般的对话框只是设置取消和确认按钮,不能进行输入密码,所以对主页面上的按钮(使用了Listview)设置监听器,之前能弹出对话框,但是设置完监听器后只有一点击就会闪退。

主要原因:

在主页面弹出的对话框看作是一个布局,然后用到了

View view = View.inflate(getApplicationContext(), R.layout.alert_set_password, null);

这个地方获得了View,下面绑定控件的时候就需要用View.findViewById(),但是我一直没注意到自己漏掉了View,所以补上View就可以了。

private void showEnterPasswordDialog() {

        builder = new android.app.AlertDialog.Builder(HomeActivity.this);
        View view = View.inflate(getApplicationContext(), R.layout.alert_set_password, null);

        et_password = (EditText) view.findViewById(R.id.et_password);
        et_password_confirm = (EditText) view.findViewById(R.id.et_password_confim);
        bt_cancel = (Button) view.findViewById(R.id.bt_cancel);
        bt_ok = (Button) view.findViewById(R.id.bt_ok);


        bt_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //取消密码框
                dialog.dismiss();
            }
        });

        bt_confim.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//        //确认密码
                dialog.dismiss();
            }
        });

        builder.setView(view);
       dialog =  builder.show();

下面贴一些自己在stackoverflow上搜的文章:

https://stackoverflow.com/questions/22706709/exception-in-messagequeue-callback-handlereceivecallback

https://stackoverflow.com/questions/24298214/exception-dispatching-input-event-and-null-pointer-exception-on-swiperefreshlayo

https://stackoverflow.com/questions/32462658/intellij-idea-warning-value-is-never-used

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值