Android Alert对话框 - 如果语句不起作用

时间:2014-08-26 22:02:12

标签: android if-statement alertdialog

我试图获取一个if语句来测试null值是否有效,但我的应用程序似乎忽略了它。下面是我目前的代码(完全不同于第二个if语句。

public void stuff(View v){

    the_problem_string = "";


    //this one works
    if (another_string == null){
    please_wait_for_value_msg = Toast.makeText(getApplicationContext(), "Please wait for values", Toast.LENGTH_SHORT);
    please_wait_for_value_msg.setGravity(Gravity.TOP|Gravity.CENTER, 0, 250);
    please_wait_for_value_msg.show();
    return;
    }

    AlertDialog.Builder save = new AlertDialog.Builder(this);
    save.setTitle("Save Location");
    save.setMessage("Enter description");
    final EditText input = new EditText (this);
    save.setView(input);
    save.setPositiveButton("Ok", new DialogInterface.OnClickListener(){

            public void onClick(DialogInterface dialog, int whichButton) {


              Editable value = input.getText();
              String something = value.toString();
              the_problem_string = something;
              //this is what is not working
              if (the_problem_string == null || the_problem_string == ""){

                  please_enter_description_msg = Toast.makeText(getApplicationContext(), "Please enter a description", Toast.LENGTH_SHORT);
                  please_enter_description_msg.setGravity(Gravity.TOP|Gravity.CENTER, 0, 250);
                  please_enter_description_msg.show();
                    return;

              }do a lot more stuff

}
                });
       save.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int whichButton) {
                return;
              }
            });
            save.show();
    }

我遇到的问题是第二个if语句。我需要它不要做更多的东西"如果the_problem_string为null(或者没有输入值)。我确信它只是一些我忽视的小东西,但是有人能指出我正确的方向或至少帮助理解为什么我没有得到理想的结果吗?

4 个答案:

答案 0 :(得分:1)

the_problem_string == "" 

不是你如何比较java中的字符串

你应该使用

the_problem_string.equals("")

答案 1 :(得分:0)

你可以这样做:

the_problem_string == null || the_problem_string == ""

使用:

TextUtils.isEmpty(the_problem_string)

答案 2 :(得分:0)

对于Java中的字符串比较,必须使用equals()方法,而不是==运算符。 因此,而不是the_problem_string == ""尝试the_problem_string.equals("")

这是因为String是Java中的一个类,对象的==运算符的实现是一个参考比较。

答案 3 :(得分:0)

the_problem_string = "";以及此

if (the_problem_string == null || the_problem_string == ""){

没有做你认为它正在做的事情。像下面的东西应该工作

if (the_problem_string == null || the_problem_string.length() == 0){

这个the_problem_string == ""不是一个好的字符串比较。