Как сделать следующее действие кнопки?
Я столкнулся с проблемой в кнопке "Далее" при отображении следующего вопроса.
В моем первом наборе текста я получаю правильный вопрос и подхожу к четырем вариантам ответов. Что мне было нужно
У меня есть кнопка "Далее" для отображения следующего вопроса и ответов. Когда я нажимаю на следующую кнопку, я могу получить следующие четыре варианта для следующего вопроса. Но я не могу получить следующий вопрос после того, как четыре раза нажму на следующий, он показывает следующий вопрос, но ответы верны.
Что я делаю не так? чего мне не хватает?
Любая помощь будет оценена.
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)); } }); }
1 ответ
Я полагаю, вы пытаетесь управлять вопросом и его параметрами на next/previous buttons click
,
Я добился в моем приложении того же, что и вы:
Step1 @ возьми один int count=0
определить глобально.
Step2 @, когда активность вызывается изначально, первый вопрос будет отображаться с опциями.
setValues(count);
// здесь я задаю вопрос и опции для textview внутри метода setValues с именем.
Шаг 3@ 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);
}
...........
Последняя точка @ После просмотра вашего кода я не сталкивался с тем, как вы устанавливаете значения для параметров.
этот
btn_practice1.setText(answ1.get((к *4)+0));
Вы объясните вышеприведенную строку кода, обновите мой ответ, иначе вы можете использовать мое решение, как я упомянул вышеупомянутые шаги мудро.