我有以下代码用于检查警告对话框中的空编辑文本,但它无法正常工作
if (mPhoneNumber == null) {
mPhoneNumber = GetNumber();
if (mPhoneNumber == "Error") {
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Warrning");
alert.setMessage("Please Set Your Phone number");
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_PHONE);
alert.setView(input);
alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton) {
String value = input.getText().toString();
while (value.isEmpty())
{
alert.setTitle("Warrning");
alert.setMessage("Please Set Your Phone number");
alert.setView(input);
alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton) {
String value = input.getText().toString();}});
}
String Result = SetNumber(value);
mPhoneNumber = value;
int UserServiceId = CallLogin(mPhoneNumber);
if (UserServiceId > 0) {
Intent Service = new Intent(MainScreeen.this,
RecipeService.class);
Service.putExtra("UserId", UserServiceId);
startService(Service);
} else {
Intent Reg = new Intent(MainScreeen.this,Regsteration.class);
Reg.putExtra("PhoneNumber", mPhoneNumber);
startActivity(Reg);
}
}
});
alert.show();
我需要强制用户使用他/她的电话号码,而不是让编辑文本为空,我使用了一个while循环,但它不能正常工作
答案 0 :(得分:2)
看起来您正在尝试比较String
值。你不能这样做
if (mPhoneNumber == "Error")
将其更改为
if("Error".equals(mPhoneNumber))
==
会比较它们是Strings
的同一对象,但如果它们具有相同的值则不会。这样做你不应该null
检查,因为如果mPhoneNumber
是mPhoneNumber
null
答案 1 :(得分:0)
为什么不让你的AlertDialog
构建一个单独的方法并调用该方法,而不是使用while循环,然后在onClick
按钮的AlertDialog
中使用if否则检查该值是否为空以及是否对您的AlertDialog
方法进行递归调用。