Reputation: 4082
One of my android learning project I am creating a list view from a dynamic json object. Its creating view perfectly. The following is my code
final ListView lv = (ListView) findViewById(R.id.listView1);
String json = "[{\"name\":\"Name 1\",\"number\":\"num 1\"},{\"name\":\"Name 2\",\"number\":\"num 1\"}]";
try {
JSONArray array = (JSONArray) new JSONTokener(json).nextValue();
String[] stringarray = new String[array.length()];
for (int i = 0; i < array.length(); i++) {
stringarray[i] = array.getJSONObject(i).getString("name");
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stringarray);
lv.setAdapter(adapter);
} catch (JSONException e) {
// handle JSON parsing exceptions...
e.printStackTrace();
}
Now I am trying to add a click event for each list and also need to show an another activity and show only this list's contents. I didn't have any idea how to do this.
Can anyone please help me ? Thanks in advance
UPDATE
final ListView lv = (ListView) findViewById(R.id.listView1);
String json = "[{\"name\":\"Name 1\",\"number\":\"num 1\"},{\"name\":\"Name 2\",\"number\":\"num 1\"}]";
try {
JSONArray array = (JSONArray) new JSONTokener(json).nextValue();
String[] stringarray = new String[array.length()];
for (int i = 0; i < array.length(); i++) {
stringarray[i] = array.getJSONObject(i).getString("name");
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stringarray);
lv.setAdapter(adapter);
adapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// Start a indent to start new activity and store necessary information hhere
}
});
} catch (JSONException e) {
// handle JSON parsing exceptions...
e.printStackTrace();
}
Upvotes: 0
Views: 1146
Reputation: 20155
Try setting onItemClick Listener for the listview like this
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String text=arg0.getItemAtPosition(arg2);
Intent i=new Intent(context, secondActiviy.class);
i.putExtra("name", text);
startActivity(i);
}
});
And in your Activity get the Extra like this
String name=getIntent().getExtras().getString("name");
show this text in the textview
Upvotes: 0
Reputation: 4563
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// Use an indent to start new activity and store necessary information in the indent
}
});
On How to start an activity using indent, check this
Upvotes: 2