MapView within a ListView -- Possible?

Put problem concerning MapActivities, MapViews, Overlays and GPS in this forum.

MapView within a ListView -- Possible?

Postby D3viant » Thu Jun 03, 2010 6:46 pm

Hello all,

Here the breakdown of what i'm attempting to do:

User selects a business, they click "View", they are taken to a listview with information about this business. This works perfectly fine. Now the problem i'm running into is that I'd like to place a MapView within my ListView. It only needs to be one map just showing the location of the actual Business. How would I do this? I have looked at the Custom Adapter stuff but am confused as if that will help.

Here is my code for reference:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. ListView myList = (ListView) findViewById(android.R.id.list);
  2.                         List<Map<String, Object>> groupData = new ArrayList<Map<String, Object>>();
  3.                        
  4.                         Map<String, Object> curGroupMap = new HashMap<String, Object>();
  5.                         groupData.add(curGroupMap);
  6.                         curGroupMap.put("ICON", R.drawable.back_icon);
  7.                         curGroupMap.put("NAME","Go Back");
  8.                         curGroupMap.put("VALUE","By clicking here");
  9.                        
  10.                         Iterator it = data.entrySet().iterator();
  11.                         while (it.hasNext())
  12.                         {
  13.                                 //Get the key name and value for it
  14.                                 Map.Entry pair = (Map.Entry)it.next();
  15.                                 String keyName = (String) pair.getKey();
  16.                                 String value = pair.getValue().toString();
  17.                                
  18.                                 if (value != null)
  19.                                 {
  20.                                         //Add the parents -- aka main categories
  21.                                         curGroupMap = new HashMap<String, Object>();
  22.                                         groupData.add(curGroupMap);
  23.  
  24.                                         //Push the correct Icon
  25.                                         if (keyName.equalsIgnoreCase("Phone"))
  26.                                                 curGroupMap.put("ICON", R.drawable.phone_icon);
  27.                                         else if (keyName.equalsIgnoreCase("Website"))
  28.                                                 curGroupMap.put("ICON", R.drawable.web_icon);
  29.                                         else if (keyName.equalsIgnoreCase("Area Snapshot"))
  30.                                                 curGroupMap.put("ICON", R.drawable.camera_icon);
  31.                                         else if (keyName.equalsIgnoreCase("Overview"))
  32.                                                 curGroupMap.put("ICON", R.drawable.overview_icon);     
  33.                                         else if (keyName.equalsIgnoreCase("Location"))
  34.                                                 curGroupMap.put("ICON", R.drawable.map_icon);
  35.                                         else
  36.                                                 curGroupMap.put("ICON", R.drawable.icon);
  37.  
  38.                                         //Pop on the Name and Value
  39.                                         curGroupMap.put("NAME", keyName);
  40.                                         curGroupMap.put("VALUE", value);
  41.                                 }
  42.                         }
  43.  
  44.                         curGroupMap = new HashMap<String, Object>();
  45.                         groupData.add(curGroupMap);
  46.                         curGroupMap.put("ICON", R.drawable.back_icon);
  47.                         curGroupMap.put("NAME","Go Back");
  48.                         curGroupMap.put("VALUE","By clicking here");
  49.                        
  50.                         //Set up adapter
  51.                         mAdapter = new SimpleAdapter(
  52.                                         mContext,
  53.                                         groupData,
  54.                                         R.layout.exp_list_parent,
  55.                                         new String[] { "ICON", "NAME", "VALUE" },
  56.                                         new int[] { R.id.photoAlbumImg, R.id.rowText1, R.id.rowText2  }
  57.                         );
  58.  
  59.                         myList.setAdapter(mAdapter); //Bind the adapter to the list    
Parsed in 0.041 seconds, using GeSHi 1.0.8.4



As you can see the current adapter contains an icon and 2 textviews. The XML for this is here:

Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3.         xmlns:android="http://schemas.android.com/apk/res/android"
  4.         android:orientation="vertical"
  5.         android:layout_width="fill_parent"
  6.         android:layout_height="fill_parent"
  7.         >
  8.                         <ImageView
  9.                                 android:id="@+id/photoAlbumImg"
  10.                                 android:layout_width="48px"
  11.                                 android:layout_height="48px"
  12.                                 android:padding="5px"
  13.                                 android:paddingRight="10px"
  14.                                 />
  15.  
  16.                         <TextView
  17.                                 android:id="@+id/rowText1"
  18.                                 android:layout_toRightOf="@id/photoAlbumImg"
  19.                                 android:layout_width="fill_parent"
  20.                                 android:layout_height="wrap_content"
  21.                                 android:textColor="#000000"
  22.                                 android:textSize="20sp"
  23.                                 android:paddingTop="10sp"
  24.                         />
  25.                         <TextView
  26.                         android:id="@+id/rowText2"
  27.                         android:layout_below="@id/rowText1"
  28.                 android:paddingLeft="50px"
  29.                         android:layout_width="fill_parent"
  30.             android:layout_height="wrap_content"               
  31.                         android:textColor="#000000"
  32.                         android:textSize="12sp"
  33.                         android:paddingBottom="10sp"
  34.                          />
  35. </RelativeLayout>
  36.  
Parsed in 0.004 seconds, using GeSHi 1.0.8.4


Where do I go from here??


Thanks in advance for any/all help! :)
D3viant
Junior Developer
Junior Developer
 
Posts: 12
Joined: Tue May 25, 2010 4:52 pm

Top

Re: MapView within a ListView -- Possible?

Postby JKumar » Fri Jun 04, 2010 9:09 am

HI,

The Custom Adapter will surely help, you need to define your view content(map view, text view and others if any).. You can also define the parameters(width/height and other relative positions) in your custom adapter.

And finally , you can add them at any place.

Don't think just go and use Custom Adapter.
Hope the suggestion helps you
Keep posting .It makes us better to understand Android
User avatar
JKumar
Experienced Developer
Experienced Developer
 
Posts: 52
Joined: Thu May 13, 2010 8:17 am
Location: INDIA

Top

Return to Map Problems

Who is online

Users browsing this forum: No registered users and 5 guests