2

我是安卓新手。。

在显示下一个问题时,我在 Nextbutton 中遇到问题...

在我第一次设置文本时,我得到了正确的问题并匹配了四个选项答案。我需要的是..

我有一个用于显示下一个问题和答案的下一个按钮。当单击下一个按钮时,我可以获得下一个问题的下四个选项。但是在我点击下一个四次后我无法得到下一个问题,它显示下一个问题。 ..但答案是正确的。

我做错了什么?我错过了什么?

任何帮助将不胜感激......提前非常感谢......

      protected String doInBackground(String... args) {
    List<NameValuePair> params = new ArrayList<NameValuePair>();
        System.out.println("cool");
    params.add(new BasicNameValuePair("tid", tid));
    json = jsonParser.makeHttpRequest(url_get_quesurl, "GET", params);
    System.out.println("ques value got");
    Log.d("All Groups: ", json.toString());
        System.out.println("question");
    try {
    int success = json.getInt(TAG_SUCCESS);
    System.out.println("Success");
    if (success == 1) {
    System.out.println("Success");
    groups = json.getJSONArray(TAG_GROUP);
    System.out.println("Result Success+++"+groups);
    for (int i = 0; i < groups.length();i++) {
    JSONObject c = groups.getJSONObject(i);
          String question = c.getString(TAG_QUES);
      System.out.println("Checking ::"+question);
    ques1.add(question);
    String answer = c.getString(TAG_ANSW);
    System.out.println("Checking ::"+answer);
    answ1.add(answer);
           }
        } else {
            showAlert();
        }
    } catch (JSONException e) {
        System.out.println("Error "+e.toString());
    }
    return null;
}  
   protected void onPostExecute(String file_url) {
    pDialog.dismiss();
      ques1=new ArrayList<String>(new ArrayList<String>(ques1));
            //  j=0;
            TextView txtque = (TextView) findViewById(R.id.que_txt); 
            txtque.setText(ques1.get(j));
    answ1=new ArrayList<String>(new ArrayList<String>(answ1));
            btn_practice1.setText(answ1.get(0));
            btn_practice2.setText(answ1.get(1));
            btn_practice3.setText(answ1.get(2));
            btn_practice4.setText(answ1.get(3));
         btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) { 
                    RadioButton radioButton = (RadioButton) findViewById(checkedId);
                   // Toast.makeText(Question.this, "" + radioButton.getText(), 2000).show(); 
                    TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                    txtRadio.setText("" + radioButton.getText());
                }
    });
        Button nextBtn = (Button) findViewById(R.id.nxt_btn);
        nextBtn.setOnClickListener(new Button.OnClickListener(){
          public void onClick(View v){  
          j++;
        TextView txtque = (TextView) findViewById(R.id.que_txt); 
        txtque.setText(ques1.get(j)); 
        k++;
        btn_practice1.setText(answ1.get((k*4)+0));
        btn_practice2.setText(answ1.get((k*4)+1));
        btn_practice3.setText(answ1.get((k*4)+2));
        btn_practice4.setText(answ1.get((k*4)+3));
         }
       });
}
4

2 回答 2

1

制作你的数组:

  • ArrayList<String> Question = new ArrayList<String>();
  • ArrayList<String> Answer = new ArrayList<String>();

添加您的价值:

  • Question.add(json_data.getString("QUESTION_TAG").toString());
  • Answer.add(json_data.getString("ANSWER_TAG").toString());

检查列表长度,您必须在按钮单击中更新索引。

按钮点击事件:

  • Question.get(index).toString();
  • Answer.get(index).toString();

在这里,您可以在每次点击后使用您的数据并更新索引,如果您的答案 id 为真。

注意: 你的索引应该被维护,否则它会抛出indexoutofrangeexception异常。

希望你能按照这个来管理。

于 2013-01-31T12:58:38.853 回答
1

问题是您当时将答案存储在 answ1 数组中,四个空字符串添加到 ques1 数组中,因此您在按下按钮四次后得到下一个问题....

为此,维护两个索引,一个用于问题,另一个用于答案。

于 2013-02-01T06:15:14.130 回答