android - 如果行 ID 不存在则返回一个字符串

标签 android sqlite

这里我有方法根据表中的 id_number/number 获取一个人的状态。如果人员编号存在,它将返回其状态,如 PENDINGACCEPTED

但是它的数字不存在,它应该返回 NONE 的字符串。该代码仅在数字存在时有效,但如果数字不存在则返回 ArrayIndexOutOfBounds;

如何防止 ArrayIndexOutOfBounds 以便在数字不存在时返回字符串值 NONE

   public String getStatus(int number) {
     SQLiteDatabase db = this.getWritableDatabase();

     Cursor cursor = db.query(TABLE_NAME, new Sting[] {KEY_NUMBER,
              KEY_FULLNAME, KEY_STATUS}, KEY_NUMBER + "=?", 
               new String[] {String.valueOf(number)}, null, null, null, null);

         if(cursor != null) {
           cursor.moveToFirst();

           String status = cursor.getString(cursor.getColumnIndex("remark");
           return status;
         }
    }

我这样称呼该方法;

  String text =  db.getStatus(100); 
   if(text.equals(null){
      Log.e("Null: ", "null");
   } else
       Log.e("exist", "exist");

如果这个数字不存在,它将崩溃并且 logcat 显示 ArrayIndexOutOfBounds

最佳答案

您需要检查 Cursor 是否返回了任何行。您可以通过检查 cursor.getCount() > 0 来执行此操作,或者如果您需要遍历 Cursor,您可以执行以下操作:

while (cursor.moveToNext()){
  //Do your code
  return "Something";
}
return "NONE";

关于android - 如果行 ID 不存在则返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32576391/

相关文章:

java - 是否可以在 JVM 中运行 Android 应用程序?

android - 在 Android 编辑文本字段中显示一条消息

python - "NOT NULL constraint failed"持久化 ORM 对象时

python - Django:匹配查询不存在且 django.core.exceptions.ImproperlyConfigured

java - 使用 Comparator 对对象列表进行排序

android - 如何在 Android 中从 Java 代码更改/重置自定义主题

Android ListView 下拉刷新

android - 如何将所有 SQLite 数据发送到在线服务器

ios - SQLite 使用 select 语句的结果更改表

python - SQLite 是否优化了 WHERE 子句中具有多个 AND 条件的查询?