God'sGrace
God'sGrace

Reputation: 171

How to get two string values in single key hashmap and convert this key into array

I'm facing the problem with hashmap and arraylist....My problem is...

I have HashMap like this..

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();
}

But I need the both strings questionid and question in a single key of hashmap, and then I want to convert this single key into arraylist...

After that I want to increment the arraylist when I click on the next button...for next question to display based upon questionid...

how to do this?

Upvotes: 0

Views: 405

Answers (2)

knennigtri
knennigtri

Reputation: 197

I like @ViVart's answer a lot better. To add on to his, you can then implement your button:

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;
     }
 });

Then you just need to implement

showNextQuestion(QuestionData data) {
    data.getQuestionID();
    data.getQuestion();
    data getAnswer();
}

Upvotes: 0

Vivart
Vivart

Reputation: 15313

create data only class for your question

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;
    }
}

and use hash map with this data structure.

    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);

Upvotes: 1

Related Questions