2011-11-28 94 views
1

首先要求屏幕用户选择不同类别的按钮,然后在选择类别后显示地图中的位置。Android从选择器中选择,然后在地图上显示

例如,用户选择搜索餐厅和酒吧,然后单击搜索。然后,下一个屏幕将显示包含地图中位置的图标。

我很困惑如何将数据从我的mainActivity传递到MapActivity。

我尝试为每个按钮做一个循环:但它显示我只想显示所选按钮的所有按钮。

---------------- Activityone ----------------

if (toggleButton5.isChecked()) { 

double point3=37326489; 
double point4=-121772461; 

Bundle b = new Bundle(); // create a bundle to pass to map activity 
     b.putDouble("point3",point3); // bundle the geo points for the map activity and convert to 1e6 
     b.putDouble("point4",point4); 
     Intent myIntent = new Intent(view.getContext(), Map.class); // create the intent to launch the map 
     myIntent.putExtras(b); // attach bundle to map activity 
    startActivityForResult(myIntent, 0); // start map activity 
    //map things! 
} 

------ ---------- ---------------- MapAcivity

Bundle b = this.getIntent().getExtras(); 
    Drawable drawable1 = this.getResources().getDrawable(R.drawable.button_food_on); 
OverlayMap itemizedoverlay2 = new OverlayMap(drawable1, this); 

GeoPoint point2 = new GeoPoint((int)(b.getDouble("point3")),(int) (b.getDouble("point4"))); 

OverlayItem overlayitem1 = new OverlayItem(point2, "", ""); 

    itemizedoverlay2.addOverlay(overlayitem1); 
    mapOverlays.add(itemizedoverlay2); 

编辑: 首先这里是第一屏幕的图像:

回答

2

你想在这里做很多事情。在android中解析xml并不重要。在android中过滤可显示图标的列表并不是微不足道的。当被单独询问时,在这个网站上很容易找到这些问题的答案。尽管如此,我会帮你解决一个小问题,让你开始在你的路上。

您没有获取想要过滤到您的MapActivity的变量的原因是因为您没有发送它们。

在你开始你的意图之前(以及在你声明之后),把你想要过滤的变量放在一个Extra中,可能是一个字符串数组。

String[] searchFilter = {"restaurants", "bars"}; //build this array of variables from your buttons, this is just a static example 
Intent myIntent3 = new Intent(view.getContext(), MapActivity.class); 
myIntent3.putExtra("yourFilter", searchFilter); 
startActivityForResult(myIntent3, 1); 

然后在你的MapActivity您可以提取您从OnCreate中或功能的onResume(但实际上你可以在活动内的任何地方称呼它)发送给它的数据。

String[] filterYouJustSent = this.getIntent().getStringArrayExtra("yourFilter"); 

MapActivityfilterYoujustSent现在应该有{"restaurants", "bars"}作为其数据。 如果您没有附加任何附加内容,filterYouJustSent将为空。

+0

我真的不知道那张照片上发生了什么。我的下一条建议是在eclipse中打开LogCat,并用'Log.d()'开始检查变量。 – Andrew

+0

感谢您的帮助安德鲁。我更新了这个问题。在图片中,用户选择类别,然后单击搜索,然后下一个活动将显示用户选择的类别的地图。提前致谢。 – AndreS

+0

你是要我为你编程吗?你的结果出了什么问题? 'overlayitem1'是否应该显示?它始终显示吗?尝试明确设置按钮的可见性。 – Andrew