Android - 包含在 Listview 中的 MapView [英] Android - MapView contained within a Listview
问题描述
目前我正在尝试将 MapView 放置在 ListView 中.有没有人在这方面取得过任何成功?甚至有可能吗?这是我的代码:
Currently I am trying to place a MapView within a ListView. Has anyone had any success with this? Is it even possible? Here is my code:
ListView myList = (ListView) findViewById(android.R.id.list);
List<Map<String, Object>> groupData = new ArrayList<Map<String, Object>>();
Map<String, Object> curGroupMap = new HashMap<String, Object>();
groupData.add(curGroupMap);
curGroupMap.put("ICON", R.drawable.back_icon);
curGroupMap.put("NAME","Go Back");
curGroupMap.put("VALUE","By clicking here");
Iterator it = data.entrySet().iterator();
while (it.hasNext())
{
//Get the key name and value for it
Map.Entry pair = (Map.Entry)it.next();
String keyName = (String) pair.getKey();
String value = pair.getValue().toString();
if (value != null)
{
//Add the parents -- aka main categories
curGroupMap = new HashMap<String, Object>();
groupData.add(curGroupMap);
//Push the correct Icon
if (keyName.equalsIgnoreCase("Phone"))
curGroupMap.put("ICON", R.drawable.phone_icon);
else if (keyName.equalsIgnoreCase("Housing"))
curGroupMap.put("ICON", R.drawable.house_icon);
else if (keyName.equalsIgnoreCase("Website"))
curGroupMap.put("ICON", R.drawable.web_icon);
else if (keyName.equalsIgnoreCase("Area Snapshot"))
curGroupMap.put("ICON", R.drawable.camera_icon);
else if (keyName.equalsIgnoreCase("Overview"))
curGroupMap.put("ICON", R.drawable.overview_icon);
else if (keyName.equalsIgnoreCase("Location"))
curGroupMap.put("ICON", R.drawable.map_icon);
else
curGroupMap.put("ICON", R.drawable.icon);
//Pop on the Name and Value
curGroupMap.put("NAME", keyName);
curGroupMap.put("VALUE", value);
}
}
curGroupMap = new HashMap<String, Object>();
groupData.add(curGroupMap);
curGroupMap.put("ICON", R.drawable.back_icon);
curGroupMap.put("NAME","Go Back");
curGroupMap.put("VALUE","By clicking here");
//Set up adapter
mAdapter = new SimpleAdapter(
mContext,
groupData,
R.layout.exp_list_parent,
new String[] { "ICON", "NAME", "VALUE" },
new int[] { R.id.photoAlbumImg, R.id.rowText1, R.id.rowText2 }
);
myList.setAdapter(mAdapter); //Bind the adapter to the list
预先感谢您的帮助!!
推荐答案
在这种情况下,您可以像添加任何其他视图一样将 MapView 添加到列表中.这是关于如何创建一个快速教程自定义列表适配器.但我必须提醒您,MapView 是一个非常沉重的视图,如果您尝试在屏幕上显示一堆视图,您会注意到应用程序运行缓慢!您可以在列表项中添加一个按钮,将用户带到另一个包含更多信息(包括地图)的页面.
In that case you would add the MapView to the list just like you would any other view. Here's a quick tutorial on how to create a custom list adapter. But I have to caution you, a MapView is a pretty heavy view and if you try to get a bunch of them on the screen you're going to notice the app being sluggish! You may just add a button to the list item that takes the user to another page with more information including a map.
这篇关于Android - 包含在 Listview 中的 MapView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!