画面遷移
画面遷移するためのソースサンプル
1、遷移元画面 Listview.java
import com.soarcloud.O2O.Browser; findButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent in = new Intent(getApplicationContext(), Browser.class); startActivity(in); } });
2、遷移先のブラウザ画面 Brower.jaza
public class Browser extends Activity implements LocationListener { private WebView webView;// Create WebView object private Location mostRecentLocation;// Create Location object private LocationManager locationManager;// Create LocationManager object /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.browser); getLocation();// Get the current geocoordinates openBrowser();// Open a browser with the Google MapView } // end main activity method /** Called when Activity Resumes **/ protected void onResume() { super.onResume(); getLocation(); } // end onResume method /** Called when Activity is Paused **/ protected void onPause() { super.onPause(); locationManager.removeUpdates(this); } // end onPause method /** Create webView and JavaScript Interface **/ private void openBrowser(){ // Create webView and assign to web_view item webView = (WebView) findViewById(R.id.web_view); // JavaScript is off by default, enabling JavaScript webView.getSettings().setJavaScriptEnabled(true); // Enable zoom controls if supported by hardware webView.getSettings().setBuiltInZoomControls(true); // Create and set WebViewClient subclass for rendering webView.setWebViewClient(new WebViewClient()); // Add Java to JavaScript Interface and call it 'android' for access. webView.addJavascriptInterface(new JavaScriptInterface(), "android"); // Wait for the page to load then send the location information webView.setWebViewClient(new WebViewClient()); // Load map.html page with webView webView.loadUrl(getURL()); } // end Browser method // Method to set/return URL for map page source private String getURL() { final String url = "file:///android_asset/map.html"; return url; } // end getURL method /** Retrieve current coordinates from GPS * To save battery on the device the location update time has been increased. **/ private void getLocation() { // Android GPS Manager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); // Application criteria for selection location provider Criteria criteria = new Criteria(); // Set the accuracy requirement criteria.setAccuracy(Criteria.ACCURACY_FINE); // Get location data from best source String provider = locationManager.getBestProvider(criteria,true); // Get updates of current location locationManager.requestLocationUpdates(provider, 2000, 1, this); // Pass location data mostRecentLocation for JavaScript Interface mostRecentLocation = locationManager.getLastKnownLocation(provider); } // end getLocation method /** Required methods when using LocationListener * Referenced from Android API **/ @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onLocationChanged(Location location) { mostRecentLocation = location; } /** End required methods when using LocationListener **/ } // End Browser.class Activity
3、AndroidManifest.xmlにBrowser画面を追加
<activity android:name="com.soarcloud.O2O.Browser" android:screenOrientation="portrait" />
4、Google地図を表示するmap.htmlを追加
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" /> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>Google Map</title> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> function initialize() { var myOptions = { zoom: 17, mapTypeId: google.maps.MapTypeId.HYBRID } var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); var position_options = { enableHighAccuracy: false }; navigator.geolocation.watchPosition(function(position) { var myLatlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); map.setCenter(myLatlng); var marker = new google.maps.Marker({ position: myLatlng, map: map }); }, null, position_options); } </script> <style type="text/css"> html, body { height: 100%; margin: 0; padding: 0; } #map_canvas { height: 100%; } </style> </head> <body onload="initialize()"> <div id="map_canvas"></div> </body> </html>