Ресторанный класс
package sg.edu.rp.c345.a01.hungrycomehere;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
public class Restaurant {
// Declarations Fields
String name;
String address;
String phoneNumber;
String email;
String url;
String openingHours;
String closingHours;
GeoPoint latLong;
// Constructor generated from Fields
public Restaurant(String name, String address, String phoneNumber,
String email, String url, String openingHours, String closingHours,
GeoPoint latLong) {
super();
this.name = name;
this.address = address;
this.phoneNumber = phoneNumber;
this.email = email;
this.url = url;
this.openingHours = openingHours;
this.closingHours = closingHours;
this.latLong = latLong;
}
// A mapping from String values to various Parcelable types.
// Construct from Bundle
public Restaurant(Bundle b) {
name = b.getString("restaurantName");
address = b.getString("restaurantAddress");
phoneNumber = b.getString("restaurantPhoneNumber");
email = b.getString("restaurantEmail");
url = b.getString("restaurantUrl");
openingHours = b.getString("restaurantOpeningHrs");
closingHours = b.getString("restaurantClosingHrs");
latLong = new GeoPoint(b.getInt("restaurantLat"), b.getInt("restaurantLng"));
}
// Convert into bundle
public Bundle getBundle() {
Bundle bundle = new Bundle();
bundle.putString("restaurantName", name);
bundle.putString("restaurantAddress", address);
bundle.putString("restaurantUrl", url);
bundle.putString("restaurantEmail", email);
bundle.putString("restaurantPhoneNumber", phoneNumber);
bundle.putString("restaurantOpeningHrs", openingHours);
bundle.putString("restaurantClosingHrs", closingHours);
bundle.putInt("restaurantLat", latLong.getLatitudeE6());
bundle.putInt("restaurantLng", latLong.getLongitudeE6());
return bundle;
}
// Get, Set, toString!
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getOpeningHours() {
return openingHours;
}
public void setOpeningHours(String openingHours) {
this.openingHours = openingHours;
}
public String getClosingHours() {
return closingHours;
}
public void setClosingHours(String closingHours) {
this.closingHours = closingHours;
}
public GeoPoint getLatLong() {
return latLong;
}
public void setLatLong(GeoPoint latLong) {
this.latLong = latLong;
}
@Override
public String toString() {
return "Restaurant [name=" + name + ", address=" + address
+ ", phoneNumber=" + phoneNumber + ", email=" + email
+ ", url=" + url + ", openingHours=" + openingHours
+ ", closingHours=" + closingHours + ", latLong=" + latLong
+ "]";
}
}
Список ресторанов
package sg.edu.rp.c345.a01.hungrycomehere;
import java.util.ArrayList;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.google.android.maps.GeoPoint;
public class ViewRestaurantList extends ListActivity {
// Declarations
ListView restaurantListView;
ArrayList<Restaurant> restaurantList = new ArrayList<Restaurant>();
ArrayList<String> restaurantName = new ArrayList<String>();
ArrayAdapter<String> restaurantAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.restaurant_list_view);
setRestaurant("Ban Leong Wah Hoe Seafood",
"122 Casuarina Road, Singapore", "64522824",
"contact@wahhoe-seafood.com", "http://www.wahhoe-seafood.com",
"5:00 PM", "1:30 AM", new GeoPoint(1376700, 103828170));
setRestaurant(
"Ngee Fou Restaurant (Hakka) Ampang Yong Tou Foo",
"928 Upper Thomson Road, Singapore",
"64521801",
null,
"http://www.hungrygowhere.com/singapore/ngee_fou_restaurant_hakka_ampang_yong_tou_foo/",
"9:30 AM", "7:30 PM", new GeoPoint(1399455, 103817878));
setElements();
}
// Create onListItemClick method
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Intent viewRestaurant = new Intent(getBaseContext(),
ViewRestaurantMap.class);
viewRestaurant.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Put all restaurants' data across activities.
viewRestaurant.putExtras(restaurantList.get(position).getBundle());
startActivity(viewRestaurant);
}
// Populate list
private void setElements() {
restaurantListView = getListView();
registerForContextMenu(restaurantListView);
restaurantAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, restaurantName);
restaurantListView.setAdapter(restaurantAdapter);
}
private void setRestaurant(String name, String address, String phoneNumber,
String email, String url, String openingHours, String closingHours,
GeoPoint latLong) {
restaurantList.add(new Restaurant(name, address, phoneNumber, email,
url, openingHours, closingHours, latLong));
restaurantName.add(name);
}
}
Карта ресторана
package sg.edu.rp.c345.a01.hungrycomehere;
import java.util.List;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import com.google.android.maps.Overlay;
public class ViewRestaurantMap extends MapActivity {
// Declarations
static final private int MAP_VIEW = Menu.FIRST;
static final private int SAT_VIEW = Menu.FIRST + 1;
MapView map;
MapController myMapController;
MyLocationOverlay myLocationOverlay;
List<Overlay> mapOverlays;
Drawable marker;
HelloItemizedOverlay itemizedOverlay;
Bundle restaurants;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.restaurant_map);
// Get Intents from ViewShoeList and Views from layout
restaurants = new Bundle(getIntent().getExtras());
// MapView and Controller
map = (MapView) findViewById(R.id.map);
map.setBuiltInZoomControls(true);
myMapController = map.getController();
myMapController.setZoom(11);
myMapController.setCenter(new GeoPoint(1352083, 103819836));
// MyLocationOverlay
myLocationOverlay = new MyLocationOverlay(this, map);
myLocationOverlay.enableMyLocation();
map.getOverlays().add(myLocationOverlay);
// Get Overlays
mapOverlays = map.getOverlays();
marker = this.getResources().getDrawable(R.drawable.marker);
itemizedOverlay = new HelloItemizedOverlay(marker);
// Add Markers on Restaurants
for (int i = 0; i < restaurants.size(); i++) {
}
}
// Create Options menu
@Override
public boolean onCreateOptionsMenu(Menu optionsMenu) {
super.onCreateOptionsMenu(optionsMenu);
// Create and add new menu items.
MenuItem itemMap = optionsMenu.add(0, MAP_VIEW, Menu.NONE,
R.string.mapview);
MenuItem itemSatellite = optionsMenu.add(0, SAT_VIEW, Menu.NONE,
R.string.satview);
itemMap.setIcon(R.drawable.mapview);
itemSatellite.setIcon(R.drawable.satelliteview);
return true;
}
// Execute option's action based on user click.
@Override
public boolean onOptionsItemSelected(MenuItem optionItem) {
super.onOptionsItemSelected(optionItem);
switch (optionItem.getItemId()) {
case (MAP_VIEW): {
map.setSatellite(false);
return true;
}
case (SAT_VIEW): {
map.setSatellite(true);
return true;
}
}
return false;
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}