我从文本视图中获取单词并传递给DB以获取其ID,我能够获得该单词但无法获取ID。 请查看我的代码并告诉我错误是什么并帮助我纠正错误
public void onClick(View v) {
// TODO Auto-generated method stub
TextView txtView = (TextView) v.findViewById(R.id.rightanswer);
//Log.d("word " + txtView.getText(), "word");
String word = txtView.getText().toString().trim();
String words[] = new String[3];
words = word.split(":");
String selectedword = words[1].toLowerCase().trim();
Log.d("Word", "|" + selectedword + "|");
getWordId(selectedword);
}
};
private int getWordId(String word) {
// String selection = "Word=" + word;
int id = -1;
String query = "Select wordId from Words WHERE Word ='"+word+"'";
//Log.d("Query ::" + query + "::", "Query");
Cursor c = executeQuery(query);
Log.d("Row Count", "" + c.getCount());
if (c.moveToFirst()) {
do {
id = c.getInt(c.getColumnIndex("wordId"));
Log.d("Id is:", "" + id);
Intent intent = new Intent(getApplicationContext(), Word.class);
intent.putExtra("wordid", id);
intent.putExtra("page", "QuizResult");
startActivity(intent);
finish();
} while (c.moveToNext());
}
c.close();
return id;
}
我将行ID设为0.请帮助我
答案 0 :(得分:0)
要从数据库中获取行号,您应该获取唯一键(_id)。 wordId是数据库中的唯一键吗?我认为,无论出于何种原因,android都必须为列_id命名。
答案 1 :(得分:0)
我敢打赌wordid
不是INTEGER PRIMARY KEY
因此会返回0
。首先检查一下。
表格中的每一行都有自己的ID,其名称为rowid
,oid
或_rowid_
。如果您只需要区分行,请使用它。或者在shell中调试数据库。
adb -e shell
cd /data/data/your.app.package.name/databases
sqlite3 database
.headers on
select * from words;
以上适用于模拟器和root设备