这是我的SqlLite查询代码,我在这里定义了一个从类别中获取颜色类别并将其作为String返回给方法的方法
public String getCategoryColor(String task) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select color from categories where title='"+task+"'", null );
return res.getString(0);
}
代码
String color=db.getCategoryColor("Android developer");
Toast.makeText(list.this, color.toString(), Toast.LENGTH_SHORT).show();
if(color.equals("0xFF64FF0B"))
{
taskt.setBackgroundColor(0xFF64FF0B);
}
else if(color.equals("0xFFFF0B4C"))
{
taskt.setBackgroundColor(0xFFFF0B4C);
}
else if(color.equals("0xFF0B89FF"))
{
taskt.setBackgroundColor(0xFF0B89FF);
}
答案 0 :(得分:3)
public abstract boolean moveToFirst()将光标移动到第一行。如果光标为空,则此方法将返回false。
返回移动是否成功。
if(cursor != null && cursor.moveToFirst()) {
String id = cursor.getString(0);
Log.v(id, id + "Color" );
return color;
}
答案 1 :(得分:0)
光标没有结果。此外,您应该使用moveToNext()
public String getCategoryColor(String task) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select color from categories where title='"+task+"'", null );
String ret = null;
if(c.moveToNext()) {
ret = c.getString(0);
}
return ret;
}
答案 2 :(得分:0)
以下是完美的解决方案:
1.首先检查它是否为零,并且大小如下:
public String getCategoryColor(String task) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select color from categories where title='"+task+"'", null );
if (res !=null && res.getCount > 0)
{
res.moveToFirst();
return res.getString(0);
}
else
{
return "";
}
}
String color = db.getCategoryColor(" Android开发人员");
if(color.equals(""))
{
// do your operation here if "" is occured.
}
else if(color.equals("0xFF64FF0B"))
{
taskt.setBackgroundColor(0xFF64FF0B);
}
else if(color.equals("0xFFFF0B4C"))
{
taskt.setBackgroundColor(0xFFFF0B4C);
}
else if(color.equals("0xFF0B89FF"))
{
taskt.setBackgroundColor(0xFF0B89FF);
}
希望它能为你提供帮助。
答案 3 :(得分:0)
你没有打过电话
1 years, 4 months, 15 days
在获取字符串之前,这就是为什么你得到currsorindexoutofbound异常
答案 4 :(得分:0)
CursorIndexOutOfBoundsException
/**
* An exception indicating that a cursor is out of bounds.
*/
public class CursorIndexOutOfBoundsException extends IndexOutOfBoundsException {
您应 RECTIFY
getCategoryColor
方法。
public String getCategoryColor(String task)
{
SQLiteDatabase db = this.getReadableDatabase();
String get_COLOR = "";
String last_query = "SELECT color FROM categories WHERE title='"+ task+"'";
Cursor c = db.rawQuery(last_query, null);
if (c != null && c.moveToFirst())
{
get_COLOR = c.getString(0);
}
c.close();
db.close();
return get_COLOR;
}