我正在尝试实施一个调查应用,我们不得不问几个问题,问题可以有多个答案。所以我使用了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);
}
}
}
答案 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);
}