Dialog加EditText,报异常:java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com...}

原因:声明EditText的时候要放在方法里,不能全局声明。
如:

private void handOne(String msg) {
        final EditText et = new EditText(this);
        et.setInputType(InputType.TYPE_CLASS_NUMBER);
        new MaterialDialogET(this).setMDMessage("请输入数量")
                .setMDCustomView(et)
                .setMDConfirmBtnClick(new MaterialDialogET.DialogBtnCallBack() {
                    @Override
                    public void dialogBtnOnClick() {
//                        et.getText().toString();
                        Logger.e("="+et.getText().toString());
                        // TODO: 2018/6/11 
//                        showLoadingDialog(null);
//                        doHttp(RetrofitUtils.createApi(xx.class).xx(parm1, parm2), 1);
                    }
                }).show();
    }

某次,在一个普通的类中,获取手机串号,写法不当也会报此类异常。如:

public void initData(){
    BaseApplication ba = new BaseApplication();
    TelephonyManager tm = (Telephonemanager) ba.getSystemService(Activity.TELEPHONY_SERVICE);
    if(ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){
    return;
    }
    tm.getDeviceId();
}

正确的写法应该是 ba 替换为 getApplicationContext()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值