java - 使用 contentprovider 的 boolean 方法总是返回 true?

标签 java android string

我有以下方法来检查数据库中是否已存在输入字符串:

public boolean check(String s){
        boolean t = false;
         ContentResolver contentResolver = this.getContentResolver();  
         Cursor cursor = contentResolver.query(FTagsContentProvider.CONTENT_URI,  
                 new String []{FTagsContentProvider.COL_TEXT}, FTagsContentProvider.COL_TEXT + "=?", new String[]{s}, null);  
         if(cursor != null){
             t = true;
         }
         else{
             t = false;
         }
         cursor.close();
        return t;
        }

但是无论我输入一个新的字符串还是一个已经存在的字符串,这个方法总是返回“true”。

是代码有问题还是内容提供者有问题?

最佳答案

检查cursor.getCount() > 0。不检查是否为null。光标可以为空,也可以不为空。

if(cursor != null && cursor.getCount() > 0) {
         t = true;
} else{
         t = false;
}

关于java - 使用 contentprovider 的 boolean 方法总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745825/

相关文章:

Java 面板重叠菜单

java sqlite - 错误 : function not yet implemented for SQLite

android - 获得焦点时更改 Edittext 线条颜色

android - 这个组件在 Android 中的名称是什么?

c - str 拆分功能不起作用

c# - 如何实现简单的字符串搜索

java - 在不添加 FormLayout 的情况下组合 GridLayout 和 FillLayout?

java - 如何将spring hibernate mysql迁移到mongodb

javascript - 有没有办法从移动浏览器调用导航?

javascript - Javascript 中的正则表达式替换