Pass data between a tabActivity and a mapActivity

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

Pass data between a tabActivity and a mapActivity

Postby elendryl » Tue Mar 16, 2010 10:25 am

Hi,

I have a tabActivity which is composed of 2 view and a map activity. At this level, no problems.

When I clicked on the tab, the mapActivity appears correctly

My problem is how pass some data (like a String) from the TabActivity to the mapActivity. When it's to pass data to view, no problems because the view are instantiate directly. However the tab with map activity is instantiate only when I clicked on the tab.

See my code :

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. public class TabbedActivity extends MapActivity implements TabContentFactory {
  2.  
  3.  
  4.  
  5.        
  6.  
  7.  
  8.  
  9.         InfoContactActivity infoView;
  10.  
  11.         InfoSupplActivity infoSupplView;
  12.  
  13.         MapviewActivity mapView;
  14.  
  15.  
  16.  
  17.         TabHost tabHost;
  18.  
  19.         Bundle objetbunble;
  20.  
  21.         String idtosearch;
  22.  
  23.         GetInfoAsyncTask asyncTask;
  24.  
  25.  
  26.  
  27. [...]
  28.  
  29.  
  30.  
  31.         public TabbedActivity() {
  32.  
  33.                 this(true);
  34.  
  35.         }
  36.  
  37.  
  38.  
  39.         public TabbedActivity(boolean singleActivityMode) {
  40.  
  41. [...]  
  42.  
  43.         }
  44.  
  45.  
  46.  
  47.         @Override
  48.  
  49.         protected void onCreate(Bundle savedInstanceState) {
  50.  
  51.                 super.onCreate(savedInstanceState);
  52.  
  53.                 Bundle states = savedInstanceState != null ? (Bundle) savedInstanceState.getBundle(STATES_KEY): null;
  54.  
  55.                 mLocalActivityManager.dispatchCreate(states);
  56.  
  57.  
  58.  
  59.         setContentView(R.layout.tab_layout);
  60.  
  61.  
  62.  
  63.                 Resources res = getResources();
  64.  
  65.                 tabHost = (TabHost) findViewById(R.id.tabhost);// The activity TabHost
  66.  
  67.                 tabHost.setup(mLocalActivityManager);
  68.  
  69.                 TabHost.TabSpec spec; // Resusable TabSpec for each tab
  70.  
  71.  
  72.  
  73.                 // recuperation des données supp de l'intent d'ouverture de lactivity
  74.  
  75.                 objetbunble = this.getIntent().getExtras();
  76.  
  77.                 // récupération de la valeur qui nous interresse
  78.  
  79.                 idtosearch = objetbunble.getString("idtosearch");
  80.  
  81.  
  82.  
  83.                 infoView = new InfoContactActivity(getApplicationContext());
  84.  
  85.                 infoSupplView = new InfoSupplActivity(getApplicationContext());
  86.  
  87.                 mapView = new MapviewActivity();
  88.  
  89.  
  90.  
  91.                 // Initialize a TabSpec for each tab and add it to the TabHost
  92.  
  93.                 spec = tabHost.newTabSpec("info").setIndicator("",
  94.  
  95.                                 res.getDrawable(R.drawable.id_card)).setContent(this);
  96.  
  97.                 tabHost.addTab(spec);
  98.  
  99.  
  100.  
  101.                 // Do the same for the other tabs
  102.  
  103.                 spec = tabHost.newTabSpec("infosupp").setIndicator("",
  104.  
  105.                                 res.getDrawable(R.drawable.email)).setContent(this);
  106.  
  107.                 tabHost.addTab(spec);
  108.  
  109.  
  110.  
  111.                 // Map
  112.  
  113.                 Context ctx = this.getApplicationContext();
  114.  
  115.                 Intent i = new Intent(ctx, TabbedActivity.class);
  116.  
  117.                 spec = tabHost.newTabSpec("map").setIndicator("",res.getDrawable(R.drawable.globe)).setContent(new Intent(this,MapviewActivity.class));
  118.  
  119.                 tabHost.addTab(spec);
  120.  
  121.  
  122.  
  123.                 tabHost.setCurrentTab(0);
  124.  
  125.  
  126.  
  127.                 asyncTask = new GetInfoAsyncTask();
  128.  
  129.                 asyncTask.execute();
  130.  
  131.         }
  132.  
  133.  
  134.  
  135.         @Override
  136.  
  137.         protected void onResume() {
  138.  
  139.                 super.onResume();
  140.  
  141.                 mLocalActivityManager.dispatchResume();
  142.  
  143.         }
  144.  
  145.  
  146.  
  147. [...]
  148.  
  149.  
  150.  
  151.                 @Override
  152.  
  153.                 protected void onProgressUpdate(Object... values) {
  154.  
  155.                         // TODO Auto-generated method stub
  156.  
  157.                         if (values[0] instanceof PersonDetailDataSet) {
  158.  
  159.                                 PersonDetailDataSet parsedDataSet = (PersonDetailDataSet) values[0];
  160.  
  161.                                 if (infoView != null) {
  162.  
  163.                                         infoView.setInfo(parsedDataSet);
  164.  
  165.                                 }
  166.  
  167.                                 if (infoSupplView != null) {
  168.  
  169.                                         infoSupplView.setInfo(parsedDataSet);
  170.  
  171.                                 }
  172.  
  173.                                
  174.  
  175. [...]
  176.  
  177.  
  178.  
  179.         public View createTabContent(String tag) {
  180.  
  181.  
  182.  
  183.                 View view = null;
  184.  
  185.  
  186.  
  187.                 if (tag.compareTo("info") == 0) {
  188.  
  189.                         view = infoView;
  190.  
  191.                 } else if (tag.compareTo("infosupp") == 0) {
  192.  
  193.                         view = infoSupplView;
  194.  
  195.                 }
  196.  
  197.                 return view;
  198.  
  199.  
  200.  
  201.         }
  202.  
  203.  
  204.  
  205. }
Parsed in 0.044 seconds, using GeSHi 1.0.8.4


Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. public class MapviewActivity extends MapActivity {
  2.  
  3.  
  4.  
  5.         MapView infoMapView;
  6.  
  7.         Hashtable<String, GeoPoint> siteToGeopoint = new Hashtable<String, GeoPoint>();
  8.  
  9.        
  10.  
  11.        
  12.  
  13.         public void onCreate(Bundle icicle) {
  14.  
  15.                 super.onCreate(icicle);
  16.  
  17.                 setContentView(R.layout.maplayout);
  18.  
  19.                
  20.  
  21.                 infoMapView = (MapView) findViewById(R.id.map);
  22.  
  23.                 infoMapView.setBuiltInZoomControls(true);
  24.  
  25.                 infoMapView.setClickable(true);
  26.  
  27.                 infoMapView.getController().setZoom(14);
  28.  
  29. public void setInfo(PersonDetailDataSet parsedDataSet) {
  30.  
  31.                 if (infoMapView != null) {
  32.  
  33.                         String site = parsedDataSet.getSiteName();
  34.  
  35.                         if (site != null) {
  36.  
  37.                                 GeoPoint gp = siteToGeopoint.get(site);
  38.  
  39.                                 if (gp != null) {
  40.  
  41.                                         infoMapView.getController().setCenter(gp);
  42.  
  43.                                         List<Overlay> mapOverlays = infoMapView.getOverlays();
  44.  
  45.                                         mapOverlays.clear();
  46.  
  47.                                         ContactItemizedOverlay overlay = new ContactItemizedOverlay(
  48.  
  49.                                                         getResources().getDrawable(R.drawable.toto));
  50.  
  51.                                         OverlayItem overlayitem = new OverlayItem(gp, "Me", "");
  52.  
  53.                                         overlay.addOverlay(overlayitem);
  54.  
  55.                                         mapOverlays.add(overlay);
  56.  
  57.                                 }
  58.  
  59.                         }
  60.  
  61.                 }
  62.  
  63.         }
  64.  
  65.  
  66.  
  67.         protected boolean isRouteDisplayed() {
  68.  
  69.                 // TODO Auto-generated method stub
  70.  
  71.                 return false;
  72.  
  73.         }
  74.  
  75.  
  76.  
  77. }
Parsed in 0.050 seconds, using GeSHi 1.0.8.4
elendryl
Freshman
Freshman
 
Posts: 9
Joined: Thu Jul 30, 2009 9:43 am

Top

Return to Map Problems

Who is online

Users browsing this forum: Exabot [Bot] and 4 guests