【问题标题】:Getting data with an array (or with another way)使用数组(或其他方式)获取数据
【发布时间】:2013-03-18 10:43:49
【问题描述】:

我有一种方法可以从数据库答案表中获取答案 ID(特定于每个答案)-getAnswerId()

但我想改变它。我在问题数据库中创建了 answer0,answer1, answer2 列,并希望将 0,1,2 作为 answerId 。如何为 getAnswerId() 识别它?

很快;

列名称:answer0,answer1,answer2

取“0,1,2”为“answerId”,放入“getAnswerId()

然后我想像这样使用它:

公共 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 from answer table)

我更改了数据库结构并将 answer0、answer 1、answer 2 添加到 answerlang 表中。 所以我需要一张表中每个答案的 id 。 我想采取 QuestionID0 (或 1,2)(来自 answer0,1,2) 所以 answerID = QuestionID+0 将针对每个答案

问题是如何间隔 QuestionID+0 去地方,而不是 this.cursor.getString(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 )

【问题讨论】:

  • 我可以建议您更好地组织问题吗?我不太确定你在问什么。
  • 你想获取列的值吗?
  • 请清楚地提出问题,以便我们为您提供帮助..
  • 已编辑问题。我希望现在更清楚

标签: java android arrays


【解决方案1】:

假设当 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);
    }

【讨论】:

  • @santral 欢迎您。如果它有帮助,请接受它作为答案或投票。
【解决方案2】:

你可能不得不使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 2021-02-12
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    相关资源
    最近更新 更多