Android Sqlite选择特定记录

时间:2013-10-08 16:06:07

标签: android sqlite

我正在使用Android Sqlite进行一些实验。所以基本上,我正在做一个应用程序,让用户输入一些句子,应用程序应显示模糊的单词(即具有多个含义的单词)。我有一个表tblWords(字段是:_id,单词,含义) 在每个单词中,有两个含义,如 break

例如:

TblWords
_id单词含义
1 BREAK中断正在进行的活动的突然事件 2 BREAK暂停做某事(作为工作)

等...

我想做什么,我希望应用程序在某些条件下只显示第一条记录,否则显示第二条记录。我怎样才能实现这样的目标?我真的需要一些想法让我开始。真的很感激任何帮助。并且还要考虑一些要点。再次感谢。

更新

这是我到目前为止所尝试的,

DBHelper.class

  public Cursor getAllWords()
{ 
            return this.myDataBase.query(DB_TABLE, new String[] { 
                    KEY_ID, KEY_WORD, KEY_MEANING }, null, null, null, null, null);

}

MainActivity.class

ArrayList<String> colWords = new ArrayList<String>();
ArrayList<String> colMeanings = new ArrayList<String>();
String[] words;
String[] meanings;

    cursor = dbHelper.getAllWords();

    colWords.clear();///added code
    colMeanings.clear();///added code


    if (cursor != null) {
        if (cursor.moveToFirst()) {
            do {
                colWords.add(cursor.getString(1)); 
                colMeanings.add(cursor.getString(2));   
                String records = cursor.getString(0);

                Log.d("Records", records);
            } while (cursor.moveToNext());
        }
    }

2 个答案:

答案 0 :(得分:1)

得到2条记录并检查条件,如果true显示第一条记录,否则在else显示第二条记录

答案 1 :(得分:1)

添加另一列,例如definition_number,以便您的表格如下所示:

_id definition_number 含义

1 BREAK 1 中断的第一个定义

2 BREAK 2 休息的第二个定义

3 CONTINUE 1 继续的第一个定义

4 CONTINUE 2 继续的第二个定义

现在,如果你想要所有的第一个定义

this.myDataBase.query(DB_TABLE, new String[] {KEY_ID, KEY_WORD, KEY_MEANING}, 
       "defintion_number = 1", null, null, null, null) 

如果你想要所有的第二个定义

this.myDataBase.query(DB_TABLE, new String[] {KEY_ID, KEY_WORD, KEY_MEANING}, 
       "defintion_number = 2", null, null, null, null)

我会添加,即使它没有解决您的问题,您可能需要考虑将数据分成两个表, Words Definitions ,以及然后酌情加入。由于这是切向的,我不会详细介绍,而是搜索架构规范化以获取有关您为什么要这样做的更多信息。