0

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

例如:

TblWords
_id 单词含义
1 BREAK 一些突然发生的事情,打断了正在进行的活动
2 BREAK 做某事的暂停(作为工作)

ETC...

我想要做的是,我希望应用程序在某些特定条件下仅显示第一条记录,否则显示第二条记录。我怎样才能实现这样的目标?我真的需要一些想法让我开始。任何帮助都非常感谢。并给出一些需要考虑的要点。再次感谢。

更新:

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

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());
        }
    }
4

2 回答 2

1

添加另一列,假设definition_number您的表格如下所示:

_id 定义_编号 含义

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)

我会补充一点,即使它没有解决您的问题,您可能需要考虑将数据分成两个表WordsDefinitions,然后酌情加入。由于这是切线的,我不会详细介绍,但请搜索模式规范化以获取有关您为什么要这样做的更多信息。

于 2013-10-08T16:35:19.887 回答
1

获取2条记录并检查条件如果为真则显示第一条记录,否则显示第二条记录

于 2013-10-08T16:25:53.150 回答