我有以下代码创建警报对话框,我添加了两个编辑文本,但一旦我运行应用程序,EditText中的值将不会被检索,我的应用程序崩溃与NullPointerException:
代码是:
AlertDialog.Builder alert = new AlertDialog.Builder(this); LayoutInflater inflater=this.getLayoutInflater(); final EditText usernameInput=(EditText)findViewById(R.id.dialogusername); final EditText passwordInput=(EditText)findViewById(R.id.dialogpassword); alert.setView(inflater.inflate(R.layout.dialog,null)); alert.setTitle("Enter Password"); alert.setMessage("Enter password to remove the app:"); alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { //provide user with caution before uninstalling //also here should be added a AsyncTask that going to read the password and once its checked the password is correct the app will be removed value1=usernameInput.getText().toString(); value2=passwordInput.getText().toString(); if(value1.equals(null)&&value2.equals(null)) {Toast.makeText(context,"Enter username and password",Toast.LENGTH_SHORT).show();} } }); }); alert.show();
解决方法
感谢你们在回答我的问题时所做的贡献,我想我得到了我上面发布的问题的解决方案:
AlertDialog.Builder alert = new AlertDialog.Builder(MyFeedActivity.this); LayoutInflater inflater=MyFeedActivity.this.getLayoutInflater(); //this is what I did to added the layout to the alert dialog View layout=inflater.inflate(R.layout.dialog,null); alert.setView(layout); final EditText usernameInput=(EditText)layout.findViewById(R.id.dialogusername); final EditText passwordInput=(EditText)layout.findViewById(R.id.dialogpassword);
我认为问题是我不能在提醒对话框中获得EidtText,但是通过上面的代码,每个东西都可以和我一起工作.