0

データベースの回答テーブルから回答ID(各回答に固有)を取得するメソッドがあります-getAnswerId()

しかし、私はそれを変えたいのです。質問データベースにanswer0、answer1、answer2列を作成し、answerIdとして0,1,2を取得したいと思います。getAnswerId()でそれを識別するにはどうすればよいですか?

まもなく;

列の名前:answer0、answer1、answer2

「0,1,2」を「answerId 」として取り、「 getAnswerId()」に入れます。

それから私はそれを次のように使いたいです:

public int getAnswerId(){

        return this.answerId;
}

編集:

sqlhelper:

final String query = "SELECT " +
            "answer._id, answerlang.AnswerText, answer.Correct, " +
            "answersquestions.QuestionID" +
            " FROM answersquestions" +
            " INNER JOIN answerlang" +
            " ON answersquestions.AnswerID = answerlang.AnswerID" +
            " INNER JOIN answer" +
            " ON answerlang.AnswerID = answer._id" +
            " WHERE answersquestions.QuestionID IN ( " +
            allQuestionIds +
            " )  ORDER BY answersquestions.QuestionID ";
    this.cursor = this.db.rawQuery(query, null);

    if (this.cursor.moveToFirst()) {
        do {
            for (final Question q : questions) {
                if (q.getQuestionId() == this.cursor.getInt(3)) {
                    q.addAnswer(new Answer(this.cursor.getInt(0),
                            this.cursor.getString(1),
                            (this.cursor.getInt(2) == 1 ? true : false)));
                }
            }
        } while (this.cursor.moveToNext());
    }
    this.cursor.close();

this.cursor.getInt(0)はanswer._id(回答テーブルの_ids)を受け取ります

データベース構造を変更し、answer0、answer 1、answer2をanswerlangテーブルに追加しました。したがって、1つのテーブルの各回答にIDが必要です。私はQuestionID0(または1,2)(answer0,1,2から)を取ると思ったので、answerID = QuestionID+0は各回答に固有です

問題は、 this.cursor.getString(0)ではなく、間隔QuestionID+0がどのように配置されるかです。

// // // // \ \ \ \

私の質問の要約:

 use **this.sample.getInt()** instead of this.cursor.getInt(0)
for example:
    
    this.sample.getInt() : will have interval 10,11,12 for question 1 (QuestionID=1, answer0=0 so answer0 id = 10, answer1 id = 11, answer2 id = 12  as spesific id )
    
     will have interval 20,21,22 for question 2 (QuestionID=2, answer0=0 so answer0 id = 20 ...... as spesific id )
4

2 に答える 2

0

あなたは使用する必要があるかもしれません

Integer.parseInt(answerFromDB.substring(8));
"answerid0".substring(8) = 0
"answerid1".substring(8) = 1

于 2013-03-18T11:01:02.530 に答える
0

questionId=1およびanswerFromDB="answer1"の場合、最初に質問IDをメソッドに渡し、questionIdとanswerIDの整数を新しい文字列に接続し、整数に解析して結果が11になると仮定します。この場合。questionId=1およびanswerFromDB="answer2"の場合、answeridは12などになります。

public int getAnswerId( String questionId) {
//here questionId=0 or 1 or 2 etc in string format 
String newAnswerId=questionId+answerFromDB.substring(8) 
 return Integer.parseInt(newAnswerId);
    }
于 2013-03-19T05:51:46.427 に答える