无法从sqlite android获取单词的id

时间:2011-09-22 12:23:21

标签: android sqlite android-edittext

我从文本视图中获取单词并传递给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.请帮助我

2 个答案:

答案 0 :(得分:0)

要从数据库中获取行号,您应该获取唯一键(_id)。 wordId是数据库中的唯一键吗?我认为,无论出于何种原因,android都必须为列_id命名。

答案 1 :(得分:0)

我敢打赌wordid不是INTEGER PRIMARY KEY因此会返回0。首先检查一下。

表格中的每一行都有自己的ID,其名称为rowidoid_rowid_。如果您只需要区分行,请使用它。或者在shell中调试数据库。

adb -e shell

cd /data/data/your.app.package.name/databases

sqlite3 database

.headers on

select * from words;

以上适用于模拟器和root设备