package com.itse.htsurvey; import com.google.gson.Gson; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemSelectedListener; public class Question2Page2Activity extends Activity { private static final Integer nextRequestCode = 10000; private String user_type; private QuestionnaireDataSet qDataSet; private ProgressDialog ProcessingDialog; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.section2_page2); //retrieve reference to object of class Intent i = getIntent(); qDataSet = (QuestionnaireDataSet) i.getSerializableExtra("qDataSet"); setupQ2_7(); setupQ2_8(); setupQ2_9(); setupQ2_10(); setupQ2_11(); setupQ2_11_1(); //disable auto focus on scroll in scrollview ScrollView sv = (ScrollView) findViewById(R.id.scrollView); ScrollViewFocus svf = new ScrollViewFocus(sv); svf.noScroll(); //scroll view back to top svf.scrollToTop(); //restore user_type setting SharedPreferences settings = getSharedPreferences("user_type", MODE_PRIVATE); user_type = settings.getString("user_type", null); } //------------------------------------------------------------------------------------------------------ //repopulate fields with saved data //------------------------------------------------------------------------------------------------------ protected void onStart() { super.onStart(); populateFields(); } //------------------------------------------------------------------------------------------------------ //show menu //------------------------------------------------------------------------------------------------------ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); if (user_type.equals("interviewer")) inflater.inflate(R.menu.menu, menu); else inflater.inflate(R.menu.menu_supervisor, menu); return true; } //------------------------------------------------------------------------------------------------------ //handle menu item selection //------------------------------------------------------------------------------------------------------ @Override public boolean onOptionsItemSelected(MenuItem item) { actionBarActivities abAct = new actionBarActivities(this, this); Gson gson = new Gson(); String JSONstring; ProgressDialog ProcessingDialog = null; switch (item.getItemId()) { case R.id.menu_sign_off: abAct.confirmSignOff(qDataSet.getqID()); return true; case R.id.menu_save: //save entered data saveEnteredData(); JSONstring = gson.toJson(qDataSet); abAct.saveQuestionnaire(JSONstring, qDataSet.getqID()); return true; case R.id.menu_submit: saveEnteredData(); if (qDataSet.getQ6_3_3_2() != null) { if (qDataSet.getPeopleNum() > 0 && qDataSet.getPeopleNum() == Integer.parseInt(qDataSet.getQ1_2())) { JSONstring = gson.toJson(qDataSet); Log.d("Gson", "JSON String: "+JSONstring); QuestionnaireUpload qu = new QuestionnaireUpload(this, this); qu.upload(JSONstring, ProcessingDialog, getString(R.string.sendQuestionnairePHPurl)); } else Toast.makeText(this, "First complete the questionnaire for all household members.", Toast.LENGTH_SHORT).show(); } else Toast.makeText(this, "First complete the questionnaire before submitting it.", Toast.LENGTH_SHORT).show(); return true; case R.id.menu_close: abAct.confirmClose(qDataSet); return true; case R.id.menu_exit: abAct.confirmExit(qDataSet); return true; default: return super.onOptionsItemSelected(item); } } //------------------------------------------------------------------------------------------------------- //setup spinners for question 2.7 //------------------------------------------------------------------------------------------------------- private void setupQ2_7() { //add custom view to layout for every person LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll2_7); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //inflate custom1 view View v = getLayoutInflater().inflate(R.layout.custom1, insertPoint, false); //add name and surname to textview TextView tvName = (TextView) v.findViewById(R.id.textView1); tvName.setText(qDataSet.getPerson(i).getFirstName() + " " + qDataSet.getPerson(i).getSurname()); //add details to spinner NoDefaultSpinner s1 = (NoDefaultSpinner) v.findViewById(R.id.spinner1); s1.setPrompt(getString(R.string.question2_7_spinnerTitle)); s1.setId(i); //set spinner width LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) s1.getLayoutParams(); lp.width = 150; s1.setLayoutParams(lp); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.question2_7_spinner, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); //add click listener to spinner final LinearLayout ll2_8 = (LinearLayout) findViewById(R.id.ll2_8); final LinearLayout ll2_9 = (LinearLayout) findViewById(R.id.ll2_9); s1.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { if (position == (parentView.getCount()-1)) { ll2_8.getChildAt(parentView.getId()).setVisibility(View.VISIBLE); //add enable events for next question ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(parentView.getId()).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(parentView.getId() + 100).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(parentView.getId() + 200).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(parentView.getId() + 300).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(parentView.getId() + 400).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(parentView.getId() + 500).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr4).findViewById(parentView.getId() + 600).setEnabled(true); ll2_8.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr4).findViewById(parentView.getId() + 700).setEnabled(true); } else { ll2_8.getChildAt(parentView.getId()).setVisibility(View.GONE); //add enable events for next question ll2_9.getChildAt(parentView.getId()).findViewById(parentView.getId()).setEnabled(true); } } public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }); //add inflated view to linear layout insertPoint.addView(v); } } //------------------------------------------------------------------------------------------------------- //setup spinners for question 2.8 //------------------------------------------------------------------------------------------------------- private void setupQ2_8() { //add custom view to layout for every person LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll2_8); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //inflate custom1 view View v = getLayoutInflater().inflate(R.layout.custom13, insertPoint, false); //add name and surname to textview TextView tvName = (TextView) v.findViewById(R.id.textView1); tvName.setText(qDataSet.getPerson(i).getFirstName() + " " + qDataSet.getPerson(i).getSurname()); //add details to check boxes CheckBox cb1 = (CheckBox) v.findViewById(R.id.checkBox1); CheckBox cb2 = (CheckBox) v.findViewById(R.id.checkBox2); CheckBox cb3 = (CheckBox) v.findViewById(R.id.checkBox3); CheckBox cb4 = (CheckBox) v.findViewById(R.id.checkBox4); CheckBox cb5 = (CheckBox) v.findViewById(R.id.checkBox5); CheckBox cb6 = (CheckBox) v.findViewById(R.id.checkBox6); CheckBox cb7 = (CheckBox) v.findViewById(R.id.checkBox7); CheckBox cb8 = (CheckBox) v.findViewById(R.id.checkBox8); cb1.setId(i); cb2.setId(i + 100); cb3.setId(i + 200); cb4.setId(i + 300); cb5.setId(i + 400); cb6.setId(i + 500); cb7.setId(i + 600); cb8.setId(i + 700); //add id to edittext final EditText et1 = (EditText) v.findViewById(R.id.editText1); et1.setId(i + 800); //add click listener to check boxes final LinearLayout ll2_9 = (LinearLayout) findViewById(R.id.ll2_9); OnCheckedChangeListener cbListener = new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //add enable events for next question CheckBox cb = (CheckBox) buttonView; ll2_9.getChildAt(cb.getId() % 100).findViewById(cb.getId() % 100).setEnabled(true); } }; cb1.setOnCheckedChangeListener(cbListener); cb2.setOnCheckedChangeListener(cbListener); cb3.setOnCheckedChangeListener(cbListener); cb4.setOnCheckedChangeListener(cbListener); cb5.setOnCheckedChangeListener(cbListener); cb6.setOnCheckedChangeListener(cbListener); cb7.setOnCheckedChangeListener(cbListener); //click listener for Other cb8.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //make visible specify other edittext CheckBox cb = (CheckBox) buttonView; if (isChecked) et1.setVisibility(View.VISIBLE); else { et1.setVisibility(View.GONE); et1.setText(""); } //add enable events for next question ll2_9.getChildAt(cb.getId() % 100).findViewById(cb.getId() % 100).setEnabled(true); } }); //add inflated view to linear layout v.setVisibility(View.GONE); insertPoint.addView(v); //disable views cb1.setEnabled(false); cb2.setEnabled(false); cb3.setEnabled(false); cb4.setEnabled(false); cb5.setEnabled(false); cb6.setEnabled(false); cb7.setEnabled(false); cb8.setEnabled(false); } } //------------------------------------------------------------------------------------------------------- //setup spinners for question 2.9 //------------------------------------------------------------------------------------------------------- private void setupQ2_9() { //add custom view to layout for every person LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll2_9); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //inflate custom1 view View v = getLayoutInflater().inflate(R.layout.custom2, insertPoint, false); //add name and surname to textview TextView tvName = (TextView) v.findViewById(R.id.textView1); tvName.setText(qDataSet.getPerson(i).getFirstName() + " " + qDataSet.getPerson(i).getSurname()); //add details to spinner NoDefaultSpinner s1 = (NoDefaultSpinner) v.findViewById(R.id.spinner1); s1.setPrompt(getString(R.string.question2_9_spinnerTitle)); s1.setId(i); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.question2_9_spinner, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); //add id to edittext final EditText et1 = (EditText) v.findViewById(R.id.editText1); et1.setId(i + 100); //add click listener to spinner final LinearLayout ll2_10 = (LinearLayout) findViewById(R.id.ll2_10); s1.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { if ((position == (parentView.getCount()-1)) || (position == (parentView.getCount()-2))) et1.setVisibility(View.VISIBLE); else { et1.setVisibility(View.INVISIBLE); et1.setText(""); } //add enable events for next question ll2_10.getChildAt(parentView.getId()).findViewById(parentView.getId()).setEnabled(true); } public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }); //add inflated view to linear layout insertPoint.addView(v); //disable views s1.setEnabled(false); } } //------------------------------------------------------------------------------------------------------- //setup spinners for question 2.10 //------------------------------------------------------------------------------------------------------- private void setupQ2_10() { //add custom view to layout for every person LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll2_10); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //inflate custom1 view View v = getLayoutInflater().inflate(R.layout.custom2, insertPoint, false); //add name and surname to textview TextView tvName = (TextView) v.findViewById(R.id.textView1); tvName.setText(qDataSet.getPerson(i).getFirstName() + " " + qDataSet.getPerson(i).getSurname()); //add details to spinner NoDefaultSpinner s1 = (NoDefaultSpinner) v.findViewById(R.id.spinner1); s1.setPrompt(getString(R.string.question2_10_spinnerTitle)); s1.setId(i); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.question2_10_spinner, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); //add id to edittext final EditText et1 = (EditText) v.findViewById(R.id.editText1); et1.setId(i + 100); //add click listener to spinner final LinearLayout ll2_11 = (LinearLayout) findViewById(R.id.ll2_11); s1.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { if (position == (parentView.getCount()-1)) et1.setVisibility(View.VISIBLE); else { et1.setVisibility(View.INVISIBLE); et1.setText(""); } //add enable events for next question ll2_11.getChildAt(parentView.getId()).findViewById(parentView.getId()).setEnabled(true); } public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }); //add inflated view to linear layout insertPoint.addView(v); //disable views s1.setEnabled(false); } } //------------------------------------------------------------------------------------------------------- //setup spinners for question 2.11 //------------------------------------------------------------------------------------------------------- private void setupQ2_11() { //add custom view to layout for every person LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll2_11); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //inflate custom1 view View v = getLayoutInflater().inflate(R.layout.custom1, insertPoint, false); //add name and surname to textview TextView tvName = (TextView) v.findViewById(R.id.textView1); tvName.setText(qDataSet.getPerson(i).getFirstName() + " " + qDataSet.getPerson(i).getSurname()); //add details to spinner NoDefaultSpinner s1 = (NoDefaultSpinner) v.findViewById(R.id.spinner1); s1.setPrompt(getString(R.string.question2_11_spinnerTitle)); s1.setId(i); //set spinner width LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) s1.getLayoutParams(); lp.width = 150; s1.setLayoutParams(lp); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.question2_11_spinner, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); //add click listener to spinner final LinearLayout ll2_11_1 = (LinearLayout) findViewById(R.id.ll2_11_1); s1.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) { if (position == (parentView.getCount()-1)) { ll2_11_1.getChildAt(parentView.getId()).setVisibility(View.VISIBLE); //add enable events for next question ll2_11_1.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(parentView.getId()).setEnabled(true); ll2_11_1.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(parentView.getId() + 100).setEnabled(true); ll2_11_1.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(parentView.getId() + 200).setEnabled(true); ll2_11_1.getChildAt(parentView.getId()).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(parentView.getId() + 300).setEnabled(true); } else ll2_11_1.getChildAt(parentView.getId()).setVisibility(View.GONE); } public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }); //add inflated view to linear layout if (Integer.parseInt(qDataSet.getPerson(i).getAge()) < 18) v.setVisibility(View.GONE); insertPoint.addView(v); //disable views s1.setEnabled(false); } } //------------------------------------------------------------------------------------------------------- //setup spinners for question 2.11.1 //------------------------------------------------------------------------------------------------------- private void setupQ2_11_1() { //add custom view to layout for every person LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll2_11_1); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //inflate custom1 view View v = getLayoutInflater().inflate(R.layout.custom14, insertPoint, false); //add name and surname to textview TextView tvName = (TextView) v.findViewById(R.id.textView1); tvName.setText(qDataSet.getPerson(i).getFirstName() + " " + qDataSet.getPerson(i).getSurname()); //add details to check boxes CheckBox cb1 = (CheckBox) v.findViewById(R.id.checkBox1); CheckBox cb2 = (CheckBox) v.findViewById(R.id.checkBox2); CheckBox cb3 = (CheckBox) v.findViewById(R.id.checkBox3); CheckBox cb4 = (CheckBox) v.findViewById(R.id.checkBox4); cb1.setId(i); cb2.setId(i + 100); cb3.setId(i + 200); cb4.setId(i + 300); //add id to edittext final EditText et1 = (EditText) v.findViewById(R.id.editText1); et1.setId(i + 400); //click listener for Other cb4.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //make visible specify other edittext CheckBox cb = (CheckBox) buttonView; if (isChecked) et1.setVisibility(View.VISIBLE); else { et1.setVisibility(View.GONE); et1.setText(""); } } }); //add inflated view to linear layout v.setVisibility(View.GONE); insertPoint.addView(v); //disable views cb1.setEnabled(false); cb2.setEnabled(false); cb3.setEnabled(false); cb4.setEnabled(false); } } //------------------------------------------------------------------------------------------------------ //open next activity when next step button clicked //------------------------------------------------------------------------------------------------------ public void nextStep(View v) { if (dataComplete()) { //save entered data saveEnteredData(); //launch next activity Intent questionIntent = new Intent(Question2Page2Activity.this, Question3Page1Activity.class); questionIntent.putExtra("qDataSet", qDataSet); startActivityForResult(questionIntent, nextRequestCode); } else Toast.makeText(Question2Page2Activity.this, "First complete all questions on this page.", Toast.LENGTH_SHORT).show(); } //------------------------------------------------------------------------------------------------------ //check that all data is filled in //------------------------------------------------------------------------------------------------------ private boolean dataComplete() { RelativeLayout rl = (RelativeLayout) findViewById(R.id.mainRelativeLayout); boolean valid = true; for (int i = 0; i < rl.getChildCount(); i++) { View v1 = rl.getChildAt(i); Class c1 = v1.getClass(); if (c1 == LinearLayout.class) { LinearLayout ll = (LinearLayout) v1; for (int j = 0; j < ll.getChildCount(); j++) { LinearLayout llInner = (LinearLayout) ll.getChildAt(j); for (int k = 0; k < llInner.getChildCount(); k++) { View v2 = llInner.getChildAt(k); Class c2 = v2.getClass(); //check if spinner is visible and item selected if (c2 == NoDefaultSpinner.class) { NoDefaultSpinner s1 = (NoDefaultSpinner) v2; if (llInner.getVisibility() == View.VISIBLE && s1.getSelectedItem() == null) valid = false; } //check if edittext from other is filled in else if (c2 == EditText.class) { EditText et1 = (EditText) v2; if (et1.getVisibility() == View.VISIBLE && et1.length() == 0) valid = false; } } } } } return valid; } //------------------------------------------------------------------------------------------------------ //save entered data to object of persondataset class //------------------------------------------------------------------------------------------------------ private void saveEnteredData() { for (int i = 0; i < qDataSet.getPeopleNum(); i++) { //question 2.7 LinearLayout ll2_7 = (LinearLayout) findViewById(R.id.ll2_7); NoDefaultSpinner s2_7 = (NoDefaultSpinner) ll2_7.getChildAt(i).findViewById(i); String selected2_7 = s2_7.getSelectedItem() != null ? s2_7.getSelectedItem().toString() : ""; qDataSet.getPerson(i).setQ2_7(selected2_7); //question 2.8 LinearLayout ll2_8 = (LinearLayout) findViewById(R.id.ll2_8); CheckBox cb1 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i); CheckBox cb2 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i + 100); CheckBox cb3 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 200); CheckBox cb4 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 300); CheckBox cb5 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(i + 400); CheckBox cb6 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(i + 500); CheckBox cb7 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr4).findViewById(i + 600); CheckBox cb8 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr4).findViewById(i + 700); EditText et2_8 = (EditText) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr5).findViewById(i + 800); //add disability if (selected2_7.equals("Yes")) { //add other disability qDataSet.getPerson(i).setQ2_8_1(cb1.isChecked()); qDataSet.getPerson(i).setQ2_8_2(cb2.isChecked()); qDataSet.getPerson(i).setQ2_8_3(cb3.isChecked()); qDataSet.getPerson(i).setQ2_8_4(cb4.isChecked()); qDataSet.getPerson(i).setQ2_8_5(cb5.isChecked()); qDataSet.getPerson(i).setQ2_8_6(cb6.isChecked()); qDataSet.getPerson(i).setQ2_8_7(cb7.isChecked()); qDataSet.getPerson(i).setQ2_8_8(et2_8.getText().toString()); } //no disability else { qDataSet.getPerson(i).setQ2_8_1(false); qDataSet.getPerson(i).setQ2_8_2(false); qDataSet.getPerson(i).setQ2_8_3(false); qDataSet.getPerson(i).setQ2_8_4(false); qDataSet.getPerson(i).setQ2_8_5(false); qDataSet.getPerson(i).setQ2_8_6(false); qDataSet.getPerson(i).setQ2_8_7(false); qDataSet.getPerson(i).setQ2_8_8(""); } //question 2.9 LinearLayout ll2_9 = (LinearLayout) findViewById(R.id.ll2_9); NoDefaultSpinner s2_9 = (NoDefaultSpinner) ll2_9.getChildAt(i).findViewById(i); String selected2_9 = s2_9.getSelectedItem() != null ? s2_9.getSelectedItem().toString() : ""; EditText et2_9 = (EditText) ll2_9.getChildAt(i).findViewById(i + 100); //add other if (s2_9.getSelectedItemPosition() == s2_9.getAdapter().getCount()-1 || s2_9.getSelectedItemPosition() == s2_9.getAdapter().getCount()-2) qDataSet.getPerson(i).setQ2_9(et2_9.getText().toString()); //add preset else qDataSet.getPerson(i).setQ2_9(selected2_9); //question 2.10 LinearLayout ll2_10 = (LinearLayout) findViewById(R.id.ll2_10); NoDefaultSpinner s2_10 = (NoDefaultSpinner) ll2_10.getChildAt(i).findViewById(i); String selected2_10 = s2_10.getSelectedItem() != null ? s2_10.getSelectedItem().toString() : ""; EditText et2_10 = (EditText) ll2_10.getChildAt(i).findViewById(i + 100); //add other if (s2_10.getSelectedItemPosition() == s2_10.getAdapter().getCount()-1) qDataSet.getPerson(i).setQ2_10(et2_10.getText().toString()); //add preset else qDataSet.getPerson(i).setQ2_10(selected2_10); //question 2.11 LinearLayout ll2_11 = (LinearLayout) findViewById(R.id.ll2_11); NoDefaultSpinner s2_11 = (NoDefaultSpinner) ll2_11.getChildAt(i).findViewById(i); String selected2_11 = s2_11.getSelectedItem() != null ? s2_11.getSelectedItem().toString() : ""; if (ll2_11.getChildAt(i).getVisibility() != View.GONE) qDataSet.getPerson(i).setQ2_11(selected2_11); else qDataSet.getPerson(i).setQ2_11("N/A"); //question 2.11_1 LinearLayout ll2_11_1 = (LinearLayout) findViewById(R.id.ll2_11_1); cb1 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i); cb2 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i + 100); cb3 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 200); cb4 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 300); EditText et2_11_1 = (EditText) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(i + 400); //add license if (selected2_11.equals("Yes")) { //add other license qDataSet.getPerson(i).setQ2_11_1_1(cb1.isChecked()); qDataSet.getPerson(i).setQ2_11_1_2(cb2.isChecked()); qDataSet.getPerson(i).setQ2_11_1_3(cb3.isChecked()); qDataSet.getPerson(i).setQ2_11_1_4(et2_11_1.getText().toString()); } //no license else { qDataSet.getPerson(i).setQ2_11_1_1(false); qDataSet.getPerson(i).setQ2_11_1_2(false); qDataSet.getPerson(i).setQ2_11_1_3(false); qDataSet.getPerson(i).setQ2_11_1_4(""); } } } //------------------------------------------------------------------------------------------------------ //button pressed to go to previuos section. Return qdataset as serialized. //------------------------------------------------------------------------------------------------------ public void previousStep(View v) { //save entered data saveEnteredData(); Intent questionIntent = new Intent(); questionIntent.putExtra("qDataSet", qDataSet); setResult(RESULT_OK, questionIntent); finish(); } //------------------------------------------------------------------------------------------------------ //redirects back pressed event to previousStep method //------------------------------------------------------------------------------------------------------ public void onBackPressed() { previousStep(null); } //------------------------------------------------------------------------------------------------------ //save returned qDataset //------------------------------------------------------------------------------------------------------ public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK && requestCode == nextRequestCode) { //retrieve serialized qdataset qDataSet = (QuestionnaireDataSet) data.getSerializableExtra("qDataSet"); } } //------------------------------------------------------------------------------------------------------ //save returned qDataset //------------------------------------------------------------------------------------------------------ private void populateFields() { LinearLayout ll2_7 = (LinearLayout) findViewById(R.id.ll2_7); LinearLayout ll2_8 = (LinearLayout) findViewById(R.id.ll2_8); LinearLayout ll2_9 = (LinearLayout) findViewById(R.id.ll2_9); LinearLayout ll2_10 = (LinearLayout) findViewById(R.id.ll2_10); LinearLayout ll2_11 = (LinearLayout) findViewById(R.id.ll2_11); LinearLayout ll2_11_1 = (LinearLayout) findViewById(R.id.ll2_11_1); for (int i = 0; i < qDataSet.getPeopleNum(); i++) { PersonDataSet person = qDataSet.getPerson(i); //question 2.7 if (person.getQ2_7() != null) { NoDefaultSpinner s2_7 = (NoDefaultSpinner) ll2_7.getChildAt(i).findViewById(i); ArrayAdapter arrAdapter = ArrayAdapter.createFromResource(this, R.array.question2_7_spinner, android.R.layout.simple_spinner_item); int position = arrAdapter.getPosition(person.getQ2_7()); s2_7.setSelection(position); } //question 2.8 if (person.getQ2_8_1() != null) { CheckBox cb1 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i); CheckBox cb2 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i + 100); CheckBox cb3 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 200); CheckBox cb4 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 300); CheckBox cb5 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(i + 400); CheckBox cb6 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(i + 500); CheckBox cb7 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr4).findViewById(i + 600); CheckBox cb8 = (CheckBox) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr4).findViewById(i + 700); EditText et2_8 = (EditText) ll2_8.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr5).findViewById(i + 800); cb1.setChecked(person.getQ2_8_1()); cb2.setChecked(person.getQ2_8_2()); cb3.setChecked(person.getQ2_8_3()); cb4.setChecked(person.getQ2_8_4()); cb5.setChecked(person.getQ2_8_5()); cb6.setChecked(person.getQ2_8_6()); cb7.setChecked(person.getQ2_8_7()); cb8.setChecked(person.getQ2_8_8().length() > 0 ? true : false); et2_8.setText(person.getQ2_8_8()); } //question 2.9 if (person.getQ2_9() != null) { NoDefaultSpinner s2_9 = (NoDefaultSpinner) ll2_9.getChildAt(i).findViewById(i); EditText et2_9 = (EditText) ll2_9.getChildAt(i).findViewById(i + 100); ArrayAdapter arrAdapter = ArrayAdapter.createFromResource(this, R.array.question2_9_spinner, android.R.layout.simple_spinner_item); int position = arrAdapter.getPosition(person.getQ2_9()); if (position != -1) s2_9.setSelection(position); else if (!person.getQ2_9().equals("N/A") && !person.getQ2_9().equals("")) { s2_9.setSelection(s2_9.getAdapter().getCount()-1); et2_9.setText(person.getQ2_9()); } } //question 2.10 if (person.getQ2_10() != null) { NoDefaultSpinner s2_10 = (NoDefaultSpinner) ll2_10.getChildAt(i).findViewById(i); EditText et2_10 = (EditText) ll2_10.getChildAt(i).findViewById(i + 100); ArrayAdapter arrAdapter = ArrayAdapter.createFromResource(this, R.array.question2_10_spinner, android.R.layout.simple_spinner_item); int position = arrAdapter.getPosition(person.getQ2_10()); if (position != -1) s2_10.setSelection(position); else if (!person.getQ2_10().equals("N/A") && !person.getQ2_10().equals("")) { s2_10.setSelection(s2_10.getAdapter().getCount()-1); et2_10.setText(person.getQ2_10()); } } //question 2.11 if (person.getQ2_11() != null) { NoDefaultSpinner s2_11 = (NoDefaultSpinner) ll2_11.getChildAt(i).findViewById(i); ArrayAdapter arrAdapter = ArrayAdapter.createFromResource(this, R.array.question2_11_spinner, android.R.layout.simple_spinner_item); int position = arrAdapter.getPosition(person.getQ2_11()); if (position != -1) s2_11.setSelection(position); else s2_11.setSelection(-1); } //question 2.11_1 if (person.getQ2_11_1_1() != null) { CheckBox cb1 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i); CheckBox cb2 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr1).findViewById(i + 100); CheckBox cb3 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 200); CheckBox cb4 = (CheckBox) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr2).findViewById(i + 300); EditText et2_11_1 = (EditText) ll2_11_1.getChildAt(i).findViewById(R.id.tl1).findViewById(R.id.tr3).findViewById(i + 400); cb1.setChecked(qDataSet.getPerson(i).getQ2_11_1_1()); cb2.setChecked(qDataSet.getPerson(i).getQ2_11_1_2()); cb3.setChecked(qDataSet.getPerson(i).getQ2_11_1_3()); cb4.setChecked(qDataSet.getPerson(i).getQ2_11_1_4().length() > 0 ? true : false); et2_11_1.setText(qDataSet.getPerson(i).getQ2_11_1_4()); } } } }