UndercoverGeek
UndercoverGeek

Reputation: 37

Listview with detailview in android

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

Answers (1)

Jer
Jer

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

Related Questions