首先实现地图应用的界面:
主要由几个控件组成,新建跟踪,继续跟踪,个人设置,帮助信息
需要在主界面展示一个“最近跟踪”(自己的所在位置记录)的列表,首先在res/value目录下string.xml文件添加一些需要用到的字符串的定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">最近记录:</string>
<string name="app_name">MapApp</string>
<!-- 菜单栏需要用到 -->
<string name="menu_new">新建跟踪</string>
<string name="menu_con">继续跟踪</string>
<string name="menu_setting">个人设置</string>
<string name="menu_helps">帮助信息</string>
<string name="menu_exit">退出</string>
</resources>
布局文件很简单一个TextView和一个ListView
如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text= "@string/title"
/>
<!-- 列表框 -->
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false" />
</LinearLayout>
新建Activity类MapAppActivity类,一个添加菜单的方法,和一个调用的方法,当然调用方法还没有具体实现,里面用到了类还没完善,只是创建出来的空类
代码如下:
package karant.map;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
public class MapAppActivity extends Activity {
public final String TAG = "mapApp";
private Track track = null;
//定义菜单常量
private static final int MENU_NEW = Menu.FIRST + 1;
private static final int MENU_CON = MENU_NEW + 1;
private static final int MENU_SETTING = MENU_CON + 1;
private static final int MENU_HELPS = MENU_SETTING + 1;
private static final int MENU_EXIT = MENU_HELPS + 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle(R.string.app_name);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//添加菜单
menu.add(0, MENU_NEW, 0, R.string.menu_new).setIcon(
R.drawable.new_track).setAlphabeticShortcut('N'); //新建跟踪
menu.add(0, MENU_CON, 0, R.string.menu_con).setIcon(
R.drawable.con_track).setAlphabeticShortcut('C'); //继续跟踪
menu.add(0, MENU_SETTING, 0, R.string.menu_setting).setIcon(
R.drawable.setting).setAlphabeticShortcut('S'); //设置
menu.add(0, MENU_HELPS, 0, R.string.menu_helps).setIcon(
R.drawable.help).setAlphabeticShortcut('H'); //帮助
menu.add(0, MENU_EXIT, 0, R.string.menu_exit).setIcon(
R.drawable.exit).setAlphabeticShortcut('E'); //退出
return true;
}
//当一个菜单被选中时候调用
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent = new Intent();
switch (item.getItemId()) {
case MENU_NEW: //新建一个跟踪
intent.setClass(MapAppActivity.this , NewTrack.class);
startActivity(intent);
return true;
case MENU_CON: //继续跟踪记录
return true;
case MENU_SETTING:
intent.setClass(MapAppActivity.this , Setting.class);
startActivity(intent);
return true;
case MENU_HELPS:
intent.setClass(MapAppActivity.this , Helps.class);
startActivity(intent);
finish();
break;
}
return true;
}
}
无误,运行程序,按模拟器或手机的Menu键,出现如下界面:
基本的界面已经完成,当然按键没有任何反映,因为响应的类还没有完善,后面会一一完善