`

AlertDialog的菜单以及MapView使用

阅读更多
这个例子主要可以学习到:
1.使用AlertDialog显示菜单item以方便选择
2.利用mapView显示goole地图

下面直接把代码贴上:

package com.sun.GoogleMap1;

import android.os.Bundle;
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 android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;

public class GoogleMap1 extends MapActivity {
	private final String TAG = "MapPrac";
	private MapView mapView = null;
	private MapController mc;
	private int chooseItem = 0;
	// Menu items
	final private int menuMode = Menu.FIRST;
	final private int menuExit = Menu.FIRST + 1;
	final private int menuCommandList = Menu.FIRST + 2;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		mapView = (MapView) findViewById(R.id.map);
		mc = mapView.getController();

		mapView.setTraffic(true);
		mapView.setSatellite(true);

		// GeoPoint gp = new GeoPoint((int)(39.269259 * 1000000),
		// (int)(115.255762 * 1000000));
		// yixian

		GeoPoint gp = new GeoPoint((int) (39.95 * 1000000),
				(int) (116.37 * 1000000));// beijing

		// mc.animateTo(gp);
		// mc.setZoom(12);
		mc.setCenter(gp);
		// to display zoom control in MapView
		mapView.setBuiltInZoomControls(true);

	}

	@Override
	protected boolean isRouteDisplayed() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub

		Log.i(TAG, "enter onKeyDown");
		return super.onKeyDown(keyCode, event);

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, menuMode, 0, "Map Mode");
		menu.add(0, menuCommandList, 1, "Command List");
		menu.add(0, menuExit, 2, "Exit");

		return super.onCreateOptionsMenu(menu);

	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		// TODO Auto-generated method stub
		switch (item.getItemId()) {
		case menuMode:
Dialog dMode = new AlertDialog.Builder(this)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(R.string.alert_dialog_single_choice)
.setSingleChoiceItems(R.array.select_dialog_items,
chooseItem, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {

chooseItem = whichButton;
}
})
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
switch (chooseItem) {
  case 0:
  mapView.setSatellite(true);
  break;
case 1:
mapView.setSatellite(true);
break;
case 2:
mapView.setTraffic(true);
break;
case 3:
mapView.setStreetView(true);
break;
default:
break;									}
}
})
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
										int whichButton) {
}
}).create();
dMode.show();
break;
case menuCommandList:
// create the dialog
Dialog d = new AlertDialog.Builder(this)
.setTitle(R.string.select_dialog)
.setItems(R.array.select_dialog_items,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
/* User clicked so do some stuff */
String[] items = getResources()
.getStringArray(
R.array.select_dialog_items);
}
}).create();
// show the dialog
d.show();

break;

case menuExit:
finish();
break;
default:
break;
}
return super.onMenuItemSelected(featureId, item);
	}

}



这个String.xml也要贴下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, GoogleMap1!</string>
    <string name="app_name">GoogleMap1</string>
    <string name="select_dialog">select_dialog</string>
    <string name="alert_dialog_ok">ok</string>
    <string name="alert_dialog_cancel">Cancel</string>
    <string name="alert_dialog_single_choice">Map Mode List</string>
    
    <string-array name="select_dialog_items">
        <item>Map</item>
        <item>Satellite</item>
        <item>Traffic</item>
        <item>Street View</item>
    </string-array>
</resources>


因为里面用到了string-array这个属性,我们可以将这个数组列表显示在比如:
AlertDialog当中

最后贴下main.xml,这个就是一个简单的MapView,我们只要申请个API-key就可以了:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<com.google.android.maps.MapView
        android:id="@+id/map"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="0y_0zdWEE7CcFIM2QPL756MOF-FT981aiCzSrhA"
        />  
</LinearLayout>



最后还是加下AndroidMenifest.xml吧
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.sun.GoogleMap1"
      android:versionCode="1"
      android:versionName="1.0">
    
      
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".GoogleMap1"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <uses-library android:name="com.google.android.maps" />
    </application>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-sdk android:minSdkVersion="3" />
</manifest> 

分享到:
评论

相关推荐

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——...

    Google Android SDK开发范例大全(完整版)

    余志龙,来自于手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及J2EE、JSP、Servlet、JavaBeans、PHP、C#等程序语言,熟悉面向对象技术与Eclipse...

    Google Android SDK开发范例大全的目录

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互-p60 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器...

    Google+Android+SDK开发范例大全

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器...

    Google Android sdk 开发范例大全 部分章节代码

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互-p60 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器...

    Google Android SDK 开发范例大全01

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互-p60 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器...

    Google Android SDK 开发范例大全02

    3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互-p60 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器...

    一个Demo搞定30个控件.zip

    通过"一个Demo搞定30个控件"的实践,开发者不仅能了解每个控件的基本用法,还能学习如何将它们组合在同一个界面中,以及如何处理用户的交互事件。这对于初学者来说,是巩固基础知识和提升实战技能的绝佳途径。同时,...

Global site tag (gtag.js) - Google Analytics