我有一段代码,我在使用时遇到了一些麻烦。代码基本上获取未读行数并返回数字。然而,这个代码是我的应用程序在应用程序调用该函数后崩溃的唯一原因。请帮助。
public int dbMsgSyncCount(){
int count = 0;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery( "SELECT * FROM " + MESSAGES_TABLE_NAME + " WHERE " + MESSAGE_STATUS
+ " = no", null);
count = cursor.getCount();
db.close();
return count;
}
在我的活动中,我有:
TextView tr = (TextView) R.id.title;
int pt =db.dbMsgSyncCount();
tr.setText(pt);
答案 0 :(得分:1)
如果将int发送到setText()
方法,该方法将尝试查找与该int匹配且崩溃的String资源。所以解决方案是调用tr.setText(String.valueOf(pt))
TextView tr = (TextView) R.id.title;
int pt =db.dbMsgSyncCount();
tr.setText(String.valueOf(pt));
答案 1 :(得分:0)
您需要将int
投放到Integer
,然后拨打toString()
TextView tr = (TextView) R.id.title;
Integer pt = new Integer(db.dbMsgSyncCount());
tr.setText(pt.toString());
答案 2 :(得分:0)
有一种简单的方法:
TextView tr = (TextView) R.id.title;
int pt = db.dbMsgSyncCount();
tr.setText(pt + "");