Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-如何阻止表单将null保存到我的数据库_Java_Android_Sqlite - Fatal编程技术网

Java Android-如何阻止表单将null保存到我的数据库

Java Android-如何阻止表单将null保存到我的数据库,java,android,sqlite,Java,Android,Sqlite,所以我写的表单有两个字段,一个主体和一个标题。我希望表单在这些字段不包含数据时抛出toast消息,以防止用户将其保存到数据库中。代码应该做三件事之一。第一个是我正在努力完成的。第二个是如果ID intent为null,它将创建一个新条目,如果ID intent有内容,它将用新内容更新数据库条目。我遇到的问题是,当表单字段为空时,它仍然保存。它似乎完全跳过了我的第一个IF语句,我似乎不知道为什么。我尝试对第一个IF语句同时使用null和“”,既可以单独使用,也可以一起使用。帮忙 submitB

所以我写的表单有两个字段,一个主体和一个标题。我希望表单在这些字段不包含数据时抛出toast消息,以防止用户将其保存到数据库中。代码应该做三件事之一。第一个是我正在努力完成的。第二个是如果ID intent为null,它将创建一个新条目,如果ID intent有内容,它将用新内容更新数据库条目。我遇到的问题是,当表单字段为空时,它仍然保存。它似乎完全跳过了我的第一个IF语句,我似乎不知道为什么。我尝试对第一个IF语句同时使用null和“”,既可以单独使用,也可以一起使用。帮忙

  submitBtn.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                String titleInsert = titleEdit.getText().toString();
                String bodyInsert = bodyEdit.getText().toString();
                String dateTimeValue = dateTimeTextView.getText().toString();
                if ((titleInsert == null || titleInsert == "") || (bodyInsert == null || bodyInsert == "")){
                    Context context = getApplicationContext();
                    CharSequence text = "Please make sure the Title and Body are both filled before saving";
                    int duration = Toast.LENGTH_SHORT;

                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show();
                }else if(intentRowId == null){
                    try{
                    mDb.open();
                    mDb.createNote(Integer.parseInt(mIntentId), titleInsert, bodyInsert, dateTimeValue);
                    finish();
                    } catch (Exception e) {
                    e.printStackTrace();
                    }
                } else {
                    try{
                        mDb.open();
                        mDb.updateNote(longRowId, titleInsert, bodyInsert);
                        finish();
                    } catch (Exception e){
                        e.printStackTrace();
                        Context context = getApplicationContext();
                        CharSequence text = "SQL Exception Thrown: " + e;
                        int duration = Toast.LENGTH_SHORT;
                        Toast toast = Toast.makeText(context, text, duration);
                        toast.show();
                    }
                }
                }
        });

尝试
标题插入等号(“”)

此外,您可能需要调用
titleInsert=titleInsert.trim()
如果它不为null,则用于捕获空白字符串,如

编辑:如果可以使用Apache commons lang,则可以使用类
StringUtils
,该类具有
isBlank()
方法,如果字符串为null、空或仅包含空格,则该方法返回true

编辑2:

关于
标题的简短解释插入.equals(“”
=
通常检查相同的对象,而不是相等数据。因此,
titleInsert
不一定是同一个对象,但可能是相等的(空字符串)。请注意,在处理(非空)对象时,几乎在所有情况下都应该使用
equals
,除非您明确知道需要使用
=
(除了检查
obj==null
),否则这种情况很少见

简短的示例:
new Long(1)=1L
可能会产生false,因为
new Long(1)
创建了一个与用于文本
1L
的Long对象不同的对象(还请注意,我使用1L排除了自动(取消)装箱)。另一方面,
new Long(1).equals(1L)
将生成true。

尝试:

 titleInsert.equals("")

而不是

 titleInsert == ""

您确定在输入第一个if语句时titleInsert实际上为null吗?我也遇到了同样的问题,但我的错误是调用者中的一个打字错误。使用.equals非常有效。我尝试了.isBlank(),但我的应用程序似乎没有将其识别为一种方法。不确定它是不是安卓系统内置的,还是我做错了什么。这一切还是新鲜事,非常感谢!正如我所说,
isBlank()
是类
StringUtils
的一个方法,它是ApacheCommonsLang库的一部分。您需要添加该库才能使用该方法。
 titleInsert == ""