Android如何获得返回值字符串从SQLite游标查询和显示它在Edittext



当我运行SQLite游标查询时,它无法在edittext中显示结果字符串。

显示Logcat消息失败:

java.lang.RuntimeException: Unable to start activity
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1

如何从游标中获得查询结果值字符串并在edittext中显示它?

public class Books extends Activity implements OnClickListener {
 private BooksData books;
 @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.books);
        books = new BooksData(this);
        }
        SQLiteDatabase db1 = books.getReadableDatabase();
        SEARCH_TERM = "math";
        EditText edittext = (EditText) findViewById(R.id.edittext1);
        // Get the value from TITLE when the TOPIC value is specified, ie such as "math".
        Cursor cursor_2 = db1.query(TABLE_NAME, new String[] {"_id", "TOPIC", "TITLE"}, "TOPIC = ?", new String[]{ ""+SEARCH_TERM+"" }, null, null, null, null);
        String TEMP_DATA = cursor_2.getString(2);
        edittext.setText(TEMP_DATA);
books.close();
cursor_2.close();
}

您需要移动到游标中的第一条记录,然后才能从中提取数据。

Cursor cursor_2 = db1.query(TABLE_NAME, new String[] {"_id", "TOPIC", "TITLE"}, "TOPIC = ?", new String[]{ ""+SEARCH_TERM+"" }, null, null, null, null);
if (cursor_2 == null)
   return;
try{
   if (cursor_2.moveToFirst()) // Here we try to move to the first record
        edittext.setText(cursor_2.getString(2)); // Only assign string value if we moved to first record
}finally { 
   cursor_2.close();
}

相关内容

  • 没有找到相关文章

最新更新