Reputation: 37
Help!!
I have a listadapter with a detail view, the problem that I am having is trying to pass values from an xml file to the second view. I can currently do this but only if I show those values in the first view. What I am trying to acheive is on the firstview have just a title and when you click on that title it takes you to a detail view with more information about it.
here is the code that I currently have.
ListAdapter adapter = new SimpleAdapter(this, menuItems,
R.layout.list_item,
new String[] { KEY_USERADDRESS, KEY_DATEDUE}, new int[] {
R.id.name, R.id.cost });
setListAdapter(adapter);
// selecting single ListView item
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
//@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
// String name = ((TextView) view.findViewById(R.id.name)).getText().toString();
String cost = ((TextView)view.findViewById(R.id.cost)).getText().toString();
// String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
//in.putExtra(KEY_USERADDRESS, name);
in.putExtra(KEY_DATEDUE, cost);
//in.putExtra(KEY_DESC, description);
startActivity(in);
}
});
}
As you can see I have a list adapter,I only want to show the contents of the KEY_USERADDRESS on the first view and when they click it then the rest will be shown. If I add the rest of the Textviews to the listadapter it makes the textviews to big.
Sorry if I am a little confusing, I'm still a rookie when it comes to android development.
Any help will be appreciated!!
Upvotes: 0
Views: 1662
Reputation: 610
Assuming your data is stored in the menuItems Map object, how about something like this in your onItemClick():
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Your code here..
Map<String, String> myValueMap = menuItems.get(position);
// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(KEY_USERADDRESS, myValueMap.get(KEY_USERADDRESS));
in.putExtra(KEY_DATEDUE, myValueMap.get(KEY_DATEDUE));
in.putExtra(KEY_DESC, myValueMap.get(KEY_DESC));
startActivity(in);
}
the position parameter in the onItemClick can be used to get the selected Map from your menuItems which you used the create your SimpleAdapter to populate the ListView
Upvotes: 1