Techfreak Techfreak - 1 month ago 10
Android Question

CheckBoxes are not getting cleared after clicking Next button

I am trying to implement a survey app in which we have to ask few questions and the question can have more than one answer. So I have used

CheckBox
for it but the problem I am facing is when I click on next button, the next question appears on the screen but the
CheckBox
s which were checked for last question are still checked for the new question. So I want all the
CheckBox
s cleared when I will click next button for next question.

public class SurveyActivity extends Activity {

Button submit,conti,nextbtn;
TextView head,survey,optn1,optn2,optn3,optn4;
String que,opt1,opt2,opt3,opt4;
CheckBox checkBox1,checkBox2,checkBox3,checkBox4;
int surveyno=127;
int questionno=1;

public final static String TAG_SUCCESS = "success";

public static final String EXTRA_MESSAGE = "Message";
String msg;
private ProgressDialog pDialog;


JSONParser jsonParser = new JSONParser();


protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_survey);
submit=(Button)findViewById(R.id.btnsumbit);
conti=(Button)findViewById(R.id.btncontinue);
head=(TextView)findViewById(R.id.tvproject);
nextbtn=(Button)findViewById(R.id.btnsubmtnxt);
survey=(TextView)findViewById(R.id.tvsurvey);

optn1=(TextView)findViewById(R.id.tvoptone);
optn2=(TextView)findViewById(R.id.tvopttwo);
optn3=(TextView)findViewById(R.id.tvoptthree);
optn4=(TextView)findViewById(R.id.tvoptfour);

checkBox1=(CheckBox)findViewById(R.id.chkopt1);
checkBox2=(CheckBox)findViewById(R.id.chkopt2);
checkBox3=(CheckBox)findViewById(R.id.chkopt3);
checkBox4=(CheckBox)findViewById(R.id.chkopt4);


nextbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{

do
{
new FetchQuestion().execute();
questionno++;
}while(questionno>=22);
}
});


//font
Typeface type01=Typeface.createFromAsset(getAssets(),"HelveticaNeue-UltraLight.ttf");
head.setTypeface(type01);

submit.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{

Intent fours1 = new Intent(SurveyActivity.this, BeginAction.class);

startActivity(fours1);
}

});

conti.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{

Intent fours1 = new Intent(SurveyActivity.this, EntrpNxtStart.class);

startActivity(fours1);
}

});

new FetchQuestion().execute();

}


public void linkdn(View view)
{
Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.linkedin.com"));
startActivity(intent);
}
public void facebook(View view)
{
Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com"));
startActivity(intent);
}
public void twiiter(View view)
{
Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/"));
startActivity(intent);
}
public void insta(View view)
{
Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.instagram.com/"));
startActivity(intent);
}



class FetchQuestion extends AsyncTask<String, String, String>
{
private ProgressDialog progressDialog;


@Override
protected void onPreExecute() {
super.onPreExecute();

progressDialog = new ProgressDialog(SurveyActivity.this);
progressDialog.setTitle("Contacting Servers");
progressDialog.setMessage("Logging in ...");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.show();
}

@Override
protected String doInBackground(String... args)
{



System.out.println("Doinbackground entered!");

List<NameValuePair> params = new ArrayList<NameValuePair>();

params.add(new BasicNameValuePair("questionno",String.valueOf(questionno)));
params.add(new BasicNameValuePair("surveyno",String.valueOf(surveyno)));


JSONObject json = jsonParser.makeHttpRequest("http://www.tikox.com/ws/survey.php","POST", params);
System.out.println("json object made, php should exec now!" + json.toString());

Log.d("Create Response", json.toString());
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
System.out.println(" Details fetched Successfully!");
String msg = json.getString("message");
System.out.println(" msg " + msg);



que = json.getString("question");
System.out.println(" que " + que);
opt1 = json.getString("option1");
System.out.println(" opt1 " + opt1);
opt2 = json.getString("option2");
System.out.println(" opt2 " + opt2);
opt3 = json.getString("option3");
System.out.println(" opt3 " + opt3);
opt4 = json.getString("option4");
System.out.println(" opt4 " + opt4);

}
else
{
System.out.print("UnSuccessfull ");
msg = json.getString("message");
System.out.print(msg);

runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
});

}


} catch (JSONException e) {
e.printStackTrace();
}
return null;
}



protected void onPostExecute(String file_url)
{

progressDialog.dismiss();
survey.setText(que);
optn1.setText(opt1);
optn2.setText(opt2);
optn3.setText(opt3);
optn4.setText(opt4);
}
}
}

Answer

You need to clear the check boxes once next is clicked. Add below code to onPostExecute().

checkBox1.setChecked(false);
checkBox2.setChecked(false);
checkBox3.setChecked(false);
checkBox4.setChecked(false);