Android Sqlite选择特定记录
我正在用Android Sqlite做一些实验。因此,基本上,我正在做一个应用程序,它允许用户输入一些句子,应用程序应该显示歧义词(即具有多重含义的词)。我有一个表TBLWORD(字段为:\ id、单词、含义) 在每个单词中,都有两种含义,如break 例如: TblWordsAndroid Sqlite选择特定记录,android,sqlite,Android,Sqlite,我正在用Android Sqlite做一些实验。因此,基本上,我正在做一个应用程序,它允许用户输入一些句子,应用程序应该显示歧义词(即具有多重含义的词)。我有一个表TBLWORD(字段为:\ id、单词、含义) 在每个单词中,都有两种含义,如break 例如: TblWords _id词的含义 1中断正在进行的活动的突然事件 从做某事(如工作)中打破停顿 等等 我想做的是,我希望应用程序在某些特定条件下只显示第一条记录,否则显示第二条记录。我怎样才能做到这一点?我真的需要一些想法来开始。非常感谢
_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子句来使用更多的约束。如果你能提供更多关于如何选择显示哪个定义的详细信息,我也许能提供一个更好的示例答案。实际上,我需要了解句子的上下文。例如,如果歧义词与表中的第一个词匹配,则打印第一个意思,否则打印第二个意思。