0

我面临hashmap和arraylist的问题......我的问题是......

我有这样的HashMap..

public class QuestionData {
    private String questionID;
    private String question;
    private String answer;
    public String getQuestionID() {
        return questionID;
    }
    public void setQuestionID(String questionID) {
        this.questionID = questionID;
    }
    public String getQuestion() {
        return question;
    }
    public void setQuestion(String question) {
        this.question = question;
    }
    public String getAnswer() {
        return answer;
    }
    public void setAnswer(String answer) {
        this.answer = answer;
    }
}
while (is another question to add) {
  QuestionData questionData = new QuestionData();
  questionData.setQuestionID(questionID);
  questionData.setQuestion(question);
  questionData.setAnswer(answer);
  ArrayList < QuestionData > questionDatas = new ArrayList < QuestionData > ();
  questionDatas.add(questionData);
}
int counter = 0;
Button nextQuestion = (Button) findViewById(R.id.your_button);
nextQuestion.setOnTouchListener(new OnTouchListener() {
   @Override
   public boolean onTouch(View v, MotionEvent event) {
     if (counter < questionDatas.size()) {
         QuestionData question = questionDatas.get(counter);
         showNextQuestion(question);
         counter++;
     }
     return false;
  }
 });
  showNextQuestion(QuestionData data) {
  data.getQuestionID();
  data.getQuestion();
  data getAnswer();
}

但是我需要 hashmap 的单个键中的字符串 questionid 和 question,然后我想将这个单个键转换为 arraylist ...

之后,当我单击下一个按钮时,我想增加数组列表...根据 questionid 显示下一个问题...

这个怎么做?

4

2 回答 2

1

为您的问题创建仅数据类

public class QuestionData {

    private String questionID;
    private String question;
    private String answer;
    public String getQuestionID() {
        return questionID;
    }
    public void setQuestionID(String questionID) {
        this.questionID = questionID;
    }
    public String getQuestion() {
        return question;
    }
    public void setQuestion(String question) {
        this.question = question;
    }
    public String getAnswer() {
        return answer;
    }
    public void setAnswer(String answer) {
        this.answer = answer;
    }
}

并将哈希映射与此数据结构一起使用。

    QuestionData questionData = new QuestionData();
        questionData.setQuestionID(questionID);
        questionData.setQuestion(question);
        questionData.setAnswer(answer);
//        HashMap<String, QuestionData> map = new HashMap<String, QuestionData>();
        ArrayList<QuestionData> questionDatas = new ArrayList<QuestionData>();
        questionDatas.add(questionData);
于 2013-01-30T05:28:41.450 回答
0

我更喜欢@ViVart 的回答。要添加到他,您可以实现您的按钮:

ArrayList<QuestionData> questionDatas = new ArrayList<QuestionData> ();
while (is another question to add) {
    if (firstQuestionParsed) {
        TextView questionID_tv = (TextView) findViewById(R.id.your_textview);
        TextView question_tv = (TextView) findViewById(R.id.your_textview);
        TextView answer_tv = (TextView) findViewById(R.id.your_textview);
        questionID_tv.setText(questionID);
        question_tv.setText(question);
        answer_tv.setText(answer);
    }
    QuestionData questionData = new QuestionData();
    questionData.setQuestionID(questionID);
    questionData.setQuestion(question);
    questionData.setAnswer(answer);
    questionDatas.add(questionData);
}
 int counter = 0;
 Button nextQuestion = (Button) findViewById(R.id.your_button);
 nextQuestion.setOnTouchListener(new OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {
         if (counter < questionDatas.size()) {
             QuestionData question = questionDatas.get(counter);
             showNextQuestion(question);
             counter++;
         }
         return false;
     }
 });

然后你只需要实现

showNextQuestion(QuestionData data) {
    data.getQuestionID();
    data.getQuestion();
    data getAnswer();
}
于 2013-01-30T05:29:59.430 回答