Android Sqlite选择特定记录

Android Sqlite选择特定记录,android,sqlite,Android,Sqlite,我正在用Android Sqlite做一些实验。因此,基本上,我正在做一个应用程序,它允许用户输入一些句子,应用程序应该显示歧义词(即具有多重含义的词)。我有一个表TBLWORD(字段为:\ id、单词、含义) 在每个单词中,都有两种含义,如break 例如: TblWords _id词的含义 1中断正在进行的活动的突然事件 从做某事(如工作)中打破停顿 等等 我想做的是,我希望应用程序在某些特定条件下只显示第一条记录,否则显示第二条记录。我怎样才能做到这一点?我真的需要一些想法来开始。非常感谢

我正在用Android Sqlite做一些实验。因此,基本上,我正在做一个应用程序,它允许用户输入一些句子,应用程序应该显示歧义词(即具有多重含义的词)。我有一个表TBLWORD(字段为:\ id、单词、含义) 在每个单词中,都有两种含义,如break

例如:

TblWords
_id词的含义
1中断正在进行的活动的突然事件
从做某事(如工作)中打破停顿

等等

我想做的是,我希望应用程序在某些特定条件下只显示第一条记录,否则显示第二条记录。我怎样才能做到这一点?我真的需要一些想法来开始。非常感谢您的帮助。并给出了一些需要考虑的问题。再次感谢

更新:

这就是我到目前为止所做的

DBHelper.class

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

}
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());
        }
    }
MainActivity.class

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

}
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());
        }
    }
ArrayList colWords=new ArrayList();
ArrayList colmeansions=新的ArrayList();
字符串[]个单词;
字符串[]含义;
cursor=dbHelper.getAllWords();
colWords.clear()///添加代码
col.clear()///添加代码
如果(光标!=null){
if(cursor.moveToFirst()){
做{
添加(cursor.getString(1));
colmeansions.add(cursor.getString(2));
字符串记录=cursor.getString(0);
日志d(“记录”,记录);
}while(cursor.moveToNext());
}
}

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

添加另一列,例如
定义\u编号
,以便您的表如下所示:

\u id单词定义\u编号含义

1中断1中断的第一个定义

2中断2中断的第二个定义

3 CONTINUE 1 CONTINUE的第一个定义

4 CONTINUE 2 CONTINUE的第二个定义

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

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)

我将添加,即使它没有解决您的问题,但您可能需要考虑将数据分离成两个表、单词和定义,然后适当地加入。由于这是相切的,我将不详细介绍,但请搜索模式规范化,以获取有关为什么要这样做的更多信息。

您能给我一些示例代码来开始实现它吗?当然!检查是否可以下载?虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,只有链接的答案可能会无效。@MuhammadAliHassan我相信您已经更改了。然而,下一个在几天、几个月或几年内通过的人可能无法连接到该链接。这里的例子帮助了未来的访问者,而不仅仅是OP。谢谢,我从来没有想过要这么做。关于条件的问题,我如何应用它?我的意思是,有些词需要打印第一个定义,否则就打印第二个定义。如果每个词都有不同的约束,那么它会变得更复杂,但是你可以构建一个where子句来使用更多的约束。如果你能提供更多关于如何选择显示哪个定义的详细信息,我也许能提供一个更好的示例答案。实际上,我需要了解句子的上下文。例如,如果歧义词与表中的第一个词匹配,则打印第一个意思,否则打印第二个意思。