Как сделать следующее действие кнопки?

Я столкнулся с проблемой в кнопке "Далее" при отображении следующего вопроса.

В моем первом наборе текста я получаю правильный вопрос и подхожу к четырем вариантам ответов. Что мне было нужно

У меня есть кнопка "Далее" для отображения следующего вопроса и ответов. Когда я нажимаю на следующую кнопку, я могу получить следующие четыре варианта для следующего вопроса. Но я не могу получить следующий вопрос после того, как четыре раза нажму на следующий, он показывает следующий вопрос, но ответы верны.

Что я делаю не так? чего мне не хватает?

Любая помощь будет оценена.

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

Вы объясните вышеприведенную строку кода, обновите мой ответ, иначе вы можете использовать мое решение, как я упомянул вышеупомянутые шаги мудро.

Другие вопросы по тегам