package com.webshrub.citizencomplaint.androidapp; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import java.util.List; public class CitizenComplaintTemplateListActivity extends CitizenComplaintActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.citizen_complaint_template_list_activity); CitizenComplaint citizenComplaint = getIntent().getExtras().getParcelable(CitizenComplaintConstants.CITIZEN_COMPLAINT); String[] templates = getTemplates(citizenComplaint); ((TextView) findViewById(R.id.textView1)).setText("Complaint about : " + citizenComplaint.getComplaintCategory() + "..."); ListView listView = (ListView) findViewById(R.id.listView1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.citizen_complaint_list_item, R.id.textView1, templates); listView.setAdapter(adapter); listView.setOnItemClickListener(new CitizenComplaintTemplateOnItemClickListener(adapter)); } private String[] getTemplates(CitizenComplaint citizenComplaint) { String[] data = new String[citizenComplaint.getCitizenComplaintTemplates().size()]; List<CitizenComplaintTemplate> citizenComplaintTemplates = citizenComplaint.getCitizenComplaintTemplates(); for (int i = 0, citizenComplaintTemplatesSize = citizenComplaintTemplates.size(); i < citizenComplaintTemplatesSize; i++) { CitizenComplaintTemplate citizenComplaintTemplate = citizenComplaintTemplates.get(i); data[i] = citizenComplaintTemplate.getTemplateString(); } return data; } private class CitizenComplaintTemplateOnItemClickListener implements AdapterView.OnItemClickListener { private ArrayAdapter<String> adapter; public CitizenComplaintTemplateOnItemClickListener(ArrayAdapter<String> adapter) { this.adapter = adapter; } @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { CitizenComplaint citizenComplaint = getIntent().getExtras().getParcelable(CitizenComplaintConstants.CITIZEN_COMPLAINT); if (position == adapter.getCount() - 1) { Intent newIntent = new Intent(CitizenComplaintTemplateListActivity.this, CitizenComplaintTypeComplaintActivity.class); newIntent.putExtra(CitizenComplaintConstants.CITIZEN_COMPLAINT, citizenComplaint); startActivity(newIntent); } else { citizenComplaint.setSelectedTemplateId(citizenComplaint.getCitizenComplaintTemplateAt(position).getTemplateId()); citizenComplaint.setSelectedTemplateString(citizenComplaint.getCitizenComplaintTemplateAt(position).getTemplateString()); Intent newIntent = new Intent(CitizenComplaintTemplateListActivity.this, CitizenComplaintPhotoCaptureActivity.class); newIntent.putExtra(CitizenComplaintConstants.CITIZEN_COMPLAINT, citizenComplaint); startActivity(newIntent); } } } }