在显示下一个问题时,我在“下一步”按钮中遇到问题。
在我第一次设置文本时,我得到了正确的问题并匹配了四个选项答案。我需要的是。
我有一个下一个按钮,用于显示下一个问题和答案。当我点击下一个按钮时,我可以获得下一个问题的下四个选项。但是,我四次点击下一次显示下一个问题后,我无法得到下一个问题,但答案是正确的。
我做错了什么?我错过了什么?
任何帮助都将不胜感激。
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)); // here im getting the question // and answers in radiobutton text 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)); // here im not getting the next question // but i can get the next four options in // radiobutton text 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)); } }); Button previousbtn = (Button) findViewById(R.id.prv_btn); previousbtn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ j--; TextView txtque = (TextView) findViewById(R.id.que_txt); txtque.setText(ques1.get(j)); // here also im not getting the perivous question // but i cant get perivous four options in // radiobutton text 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)); } }); }
答案 0 :(得分:2)
我认为,您正试图在next/previous buttons click
上管理问题及其选项。
我在我的应用程序中实现了同样的目标:
Step1 @全局定义一个int count=0
。
Step2 @当最初调用活动时,第一个问题将显示带有选项。
setValues(count);
//这里我在setValues命名方法中为textview设置问题和选项。
Step3 @ onClick of NextButton
检查条件如下:
if (count == question.size() - 1) {
finish();
break;
}
else {
count++;
setValues(count);
}
Step4 @ onClick of PreviousButton
检查条件如下:
if (count <= 0) {
Toast.makeText(OnPurposeUPSQuesAcitivty.this, "First Record",Toast.LENGTH_SHORT).show();
break;
} else {
count--;
setValues(count);
}
您的setValue
方法如下所示:
public void setValues( int j) {
txtque.setText(ques1.get(j));
btn_practice1.setText(answ1.get(j);
btn_practice2.setText(answ1.get(j);
btn_practice3.setText(answ1.get(j);
btn_practice4.setText(answ1.get(j);
}
...........
Last Point @在审核了您的代码之后,我没有想到您如何为选项设置值。
此
btn_practice1.setText(answ1.get((K * 4)0));
你会解释上面的代码行,会更新我的答案,否则你可以使用我的解决方案,如上所述。