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