Data not being passed from listview into activity
I have finally got my onListItemClick to work but now it seems as if the
data I have set to be passed into the next activity does not go through
but the activity still starts. My application doesn't crash or anything it
just loads the activity but the data I had set to go with it doesn't seem
to be there. I have tried removing the scrollview but the data still
doesn't seem to go through.
public class ListView extends ListActivity {
ArrayList<HashMap<String, String>> questionList;
final String TAG_RESULTS = "results";
final String TAG_QUESTION_SUBJECT = "Subject";
final String TAG_QUESTION_NUMANSWERS = "NumAnswers";
final String TAG_QUESTION = "question";
final String TAG_QUESTION_CONTENT = "Content";
final String TAG_QUESTION_CHOSENANSWER = "ChosenAnswer";
final String TAG_ANSWERS = "Answers";
final String TAG_ANSWER = "Answer";
final String TAG_ANSWERS_CONTENT = "content";
final String TAG_QUERY = "query";
JSONArray question = null;
android.widget.ListView lv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.listview);
questionList = new ArrayList<HashMap<String, String>>();
new LoadAllData().execute();
}
@Override
protected void onListItemClick(android.widget.ListView l, View v, int
pos, long id) {
super.onListItemClick(l, v, pos, id);
String Subject = ((TextView)
v.findViewById(R.id.Subject)).getText().toString();
String Content = ((TextView)
v.findViewById(R.id.Content)).getText().toString();
String ChosenAnswer = ((TextView)
v.findViewById(R.id.ChosenAnswer)).getText().toString();
Intent i = new Intent(ListView.this, SingleListItem.class);
i.putExtra(TAG_QUESTION_SUBJECT, Subject);
i.putExtra(TAG_QUESTION_CONTENT, Content);
i.putExtra(TAG_QUESTION_CHOSENANSWER, ChosenAnswer);
startActivity(i);
}
class LoadAllData extends AsyncTask<String, String, String> {
private Dialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
ProgressDialog pDialog;
pDialog = new ProgressDialog(ListView.this);
pDialog.setMessage("Loading Data. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
if (pDialog != null && pDialog.isShowing()) pDialog.dismiss();
}
protected String doInBackground(String... args) {
try {
Intent in = getIntent();
String searchTerm = in.getStringExtra("TAG_SEARCH");
String query = URLEncoder.encode(searchTerm, "utf-8");
String URL = "http://example.com;
JSONParsser jParser = new JSONParsser();
JSONObject json = jParser.readJSONFeed(URL);
try {
//question = json.getJSONArray(TAG_QUESTION);
JSONArray questions =
json.getJSONObject("all").getJSONArray("questions");
for(int i = 0; i < questions.length(); i++) {
JSONObject question = questions.getJSONObject(i);
String Subject =
question.getString(TAG_QUESTION_SUBJECT);
String NumAnswers =
question.getString(TAG_QUESTION_NUMANSWERS);
String ChosenAnswer =
question.getString(TAG_QUESTION_CHOSENANSWER);
String Content =
question.getString(TAG_QUESTION_CONTENT);
//JSONArray Answers =
question.getJSONObject(TAG_ANSWERS).getJSONArray(TAG_ANSWER);
//JSONObject Answer = Answers.getJSONObject(0);
//String Content = Answer.getString(TAG_ANSWERS_CONTENT);
HashMap<String, String> map = new
HashMap<String, String>();
map.put(TAG_QUESTION_SUBJECT, Subject);
map.put(TAG_QUESTION_NUMANSWERS, NumAnswers);
map.put(TAG_QUESTION_CONTENT, Content);
map.put(TAG_QUESTION_CHOSENANSWER,
ChosenAnswer);
questionList.add(map);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return TAG_QUESTION ;
}
@Override
protected void onPostExecute(String file_URL) {
ListAdapter adapter = new SimpleAdapter(getBaseContext(),
questionList,
R.layout.listelements,
new String[] { TAG_QUESTION_SUBJECT,
TAG_QUESTION_NUMANSWERS }, new int[] {
R.id.Subject, R.id.NumAnswers });
setListAdapter(adapter);
}}}
SingleListItem Activity:
public class SingleListItem extends Activity {
TextView title;
TextView question;
TextView bestanswer;
TextView subject;
TextView content;
TextView chosenanswer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.singlelistitem);
title = (TextView) findViewById(R.id.Title1);
question = (TextView) findViewById(R.id.Question1);
bestanswer = (TextView) findViewById(R.id.BestAnswer1);
subject = (TextView) findViewById(R.id.Subject1);
content = (TextView) findViewById(R.id.Content1);
chosenanswer = (TextView) findViewById(R.id.ChosenAnswer1);
Intent i = getIntent();
String Subject = i.getStringExtra("TAG_QUESTION_SUBJECT");
String Content = i.getStringExtra("TAG_QUESTION_CONTENT");
String ChosenAnswer = i.getStringExtra("TAG_QUESTION_CHOSENANSWER");
subject.setText(Subject);
content.setText(Content);
chosenanswer.setText(ChosenAnswer);
}
}
singlelistitem.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/Title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/Subject1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.00"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/Question1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Question:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/Content1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ScrollView>
<TextView
android:id="@+id/BestAnswer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Best Answer:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/ChosenAnswer1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.01"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
No comments:
Post a Comment