这里我有方法根据表中的 id_number/number 获取一个人的状态。如果人员编号存在,它将返回其状态,如 PENDING
或 ACCEPTED
。
但是它的数字不存在,它应该返回 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/