.setOnClickListener报错NullPointerException
来源:互联网 发布:谭浩强的c语言入门pdf 编辑:程序博客网 时间:2024/05/16 01:30
AlertDialog.Builder ad=new AlertDialog.Builder(this);ad.setTitle("请登录");View ldView=LayoutInflater.from(MainActivity.this).inflate(R.layout.login_dialog,null, false);ad.setView(ldView);//通过sp对象在/data/data/SharedPreferences/目录下的创建或打开user.xml,指定只能被本应用程序读写sp=this.getSharedPreferences("user", Context.MODE_PRIVATE);//初始化登录框数据if(sp.getBoolean("isRemenber", false)){etUserName.setText(sp.getString("userName","")); etPassword.setText(sp.getString("password","")); cbShowPw.setChecked(sp.getBoolean("isShowPw",false));cbRemenber.setChecked(sp.getBoolean("isRemenber", false));}cbRemenber.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubEditor edit=sp.edit();String name=etUserName.getText().toString().trim();String password=etPassword.getText().toString().trim();if(cbRemenber.isChecked()){edit.putString("userName", name);edit.putString("password", password);edit.putBoolean("isRember", true);edit.putBoolean("isShowPw", cbShowPw.isChecked());edit.commit();}else{edit.putString("userName","");edit.putString("password","");edit.putBoolean("isRember", false);edit.putBoolean("isShowPw", cbShowPw.isChecked());edit.commit();}}});cbShowPw.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubEditor edit=sp.edit();if(cbShowPw.isChecked()){edit.putBoolean("isShowPw", true);edit.commit();//密码由密文变为明文etPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());}else{//密码由明文变为密文etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());}}});
我在这个对话框里插入一个布局文件,变量的实例化直接写成 下面这样
etUserName=(EditText)this.findViewById(R.id.et_userName);etPassword=(EditText)this.findViewById(R.id.et_passWord);btLogin=(Button)this.findViewById(R.id.bt_login);btCancel=(Button)this.findViewById(R.id.bt_cancel);cbShowPw=(CheckBox)this.findViewById(R.id.cb_showPw);cbRemenber=(CheckBox)this.findViewById(R.id.cb_rember);
结果是运行的时候报错
两个checkbox的.setOnClickListener都是NullPointerException
后来想到,这是在main.xml中寻找id,但我需要的是login_dialog.xml中的id
故改成下面这样
AlertDialog.Builder ad=new AlertDialog.Builder(this);ad.setTitle("请登录");View ldView=LayoutInflater.from(MainActivity.this).inflate(R.layout.login_dialog,null, false);etUserName=(EditText)ldView.findViewById(R.id.et_userName);etPassword=(EditText)ldView.findViewById(R.id.et_passWord);btLogin=(Button)ldView.findViewById(R.id.bt_login);btCancel=(Button)ldView.findViewById(R.id.bt_cancel);cbShowPw=(CheckBox)ldView.findViewById(R.id.cb_showPw);cbRemenber=(CheckBox)ldView.findViewById(R.id.cb_rember);ad.setView(ldView);//通过sp对象在/data/data/SharedPreferences/目录下的创建或打开user.xml,指定只能被本应用程序读写sp=this.getSharedPreferences("user", Context.MODE_PRIVATE);//初始化登录框数据if(sp.getBoolean("isRemenber", false)){etUserName.setText(sp.getString("userName","")); etPassword.setText(sp.getString("password","")); cbShowPw.setChecked(sp.getBoolean("isShowPw",false));cbRemenber.setChecked(sp.getBoolean("isRemenber", false));}cbRemenber.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubEditor edit=sp.edit();String name=etUserName.getText().toString().trim();String password=etPassword.getText().toString().trim();if(cbRemenber.isChecked()){edit.putString("userName", name);edit.putString("password", password);edit.putBoolean("isRember", true);edit.putBoolean("isShowPw", cbShowPw.isChecked());edit.commit();}else{edit.putString("userName","");edit.putString("password","");edit.putBoolean("isRember", false);edit.putBoolean("isShowPw", cbShowPw.isChecked());edit.commit();}}});cbShowPw.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubEditor edit=sp.edit();if(cbShowPw.isChecked()){edit.putBoolean("isShowPw", true);edit.commit();//密码由密文变为明文etPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());}else{//密码由明文变为密文etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());}}});
运行正常
0 0
- .setOnClickListener报错NullPointerException
- bt.setOnClickListener(new OnClickListener()报错java.lang.nullpointerException
- 关于Activity02的setOnClickListener报错
- 关于android setOnClickListener()报错
- setOnClickListener()与报错OnClickListener()原因
- dbvisualizer报错,NullPointerException
- springMVC报错NullPointerException
- 导出EXCEL报错:NullPointerException
- excel上传下载报错NullPointerException
- 启动WebLogic报错NullPointerException
- HDFS下载报错NullPointerException
- 使用listfiles()报错:NullPointerException
- <Android>setOnClickListener使用无效,报错null pointer
- setOnClickListener报空指针异常
- setOnClickListener报空指针异常
- 一个java.lang.NullPointerException报错
- hive报错FAILED: NullPointerException null原因
- webservice报错NullPointerException的解决方法
- 10个出色的NoSQL数据库
- 【TypeError: only length-1 arrays can be converted to Python scalars】
- java基础学习笔记——集合解析
- CentOS 操作
- request对象的getAttribute和getParameter区别
- .setOnClickListener报错NullPointerException
- Mac下安装SecureCRT并激活
- orange pi csi camera 测试
- 新Android病毒出现 自动下载且无法卸载
- hadoop的RPC机制
- C#中Image类与byte[]之间的转换
- 我的工具真是太少了--IOS弹出提示框
- 模版获取多层次节点(使用不定参数)
- 凤凰项目:一个IT运维的传奇故事——互动出版网