单击“下一步”按钮后,复选框不会被清除

时间:2016-10-26 09:55:17

标签: java android android-studio checkbox

我正在尝试实施一个调查应用,我们不得不问几个问题,问题可以有多个答案。所以我使用了CheckBox,但我面临的问题是,当我点击下一个按钮时,屏幕上会出现下一个问题,但仍会检查已检查上一个问题的CheckBox新问题。因此,当我点击下一个按钮以查看下一个问题时,我希望清除所有CheckBox

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

3 个答案:

答案 0 :(得分:0)

CheckBox类继承自CompoundButton,其setChecked方法可以在nextbtn点击监听器中使用。

Checkboxes的Android文档中有一个示例:https://developer.android.com/reference/android/widget/CheckBox.html

答案 1 :(得分:0)

单击下一步后,您需要清除复选框。将以下代码添加到onPostExecute()。

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

答案 2 :(得分:0)

On Next单击侦听器取消选中所有复选框,如

protected void onPostExecute(String file_url)
    {
        checkBox1.setSelected(false);
        checkBox2.setSelected(false);
        checkBox3.setSelected(false);
        checkBox4.setSelected(false);

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