首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Dialog&Notification&OptionsMenu习题

2012-08-24 
Dialog&Notification&OptionsMenu练习下面的menu没有意义,仅仅是个练习而已,看图先:布局:view:package com

Dialog&Notification&OptionsMenu练习
下面的menu没有意义,仅仅是个练习而已,看图先:

布局:



view:
package com.dc.app;import java.util.Calendar;import android.app.Activity;import android.app.AlertDialog;import android.app.DatePickerDialog;import android.app.Dialog;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.app.ProgressDialog;import android.app.TimePickerDialog;import android.content.DialogInterface;import android.graphics.Color;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.DatePicker;import android.widget.EditText;import android.widget.TextView;import android.widget.TimePicker;import android.widget.Toast;public class AppActivity extends Activity {private static final String TAG="AppActivity";private TextView textViewName,textViewAge;private EditText editTextName,editTextAge;private final int menuIdRegiste=1;private final int menuIdBack=2;private final int menuIdLogin=3;private final int menuIdDate=4;private final int menuIdTime=5;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Log.v(TAG,"start");                textViewName=(TextView)this.findViewById(R.id.textViewName);        textViewName.setTextColor(Color.BLUE);        textViewName.setBackgroundColor(Color.WHITE);                editTextName=(EditText)this.findViewById(R.id.editTextName);                textViewAge=(TextView)this.findViewById(R.id.textViewAge);        textViewAge.setTextColor(Color.BLUE);        textViewAge.setBackgroundColor(Color.WHITE);                editTextAge=(EditText)this.findViewById(R.id.editTextAge);            }            public boolean onCreateOptionsMenu(Menu menu) {//初始化Menu菜单选择项          super.onCreateOptionsMenu(menu);            //添加菜单项,比如:            menu.add(0, menuIdRegiste, 0, R.string.registe).setShortcut('1', 'r');//设置快捷键          menu.add(0, menuIdBack, 0, R.string.back).setShortcut('2', 'b');//设置快捷键          menu.add(0, menuIdLogin, 0, R.string.login).setShortcut('3', 'l');//设置快捷键          menu.add(0, menuIdDate, 0, R.string.date).setShortcut('4', 'd');//设置快捷键          menu.add(0, menuIdTime, 0, R.string.time).setShortcut('5', 't');//设置快捷键                  //添加其他菜单项。。。。。。            return true;      }    public boolean onPrepareOptionsMenu(Menu menu) {//          super.onPrepareOptionsMenu(menu);            //这里可以事先设置菜单的可见性,如果都可见,可以不设置            menu.findItem(menuIdRegiste).setVisible(true).setIcon(android.R.drawable.ic_menu_add);//设置菜单项可见性          menu.findItem(menuIdBack).setVisible(true).setIcon(android.R.drawable.ic_menu_save);//设置菜单项可见性          menu.findItem(menuIdLogin).setVisible(true).setIcon(android.R.drawable.ic_menu_camera);//设置菜单项可见性          menu.findItem(menuIdDate).setVisible(true).setIcon(android.R.drawable.ic_menu_compass);//设置菜单项可见性          menu.findItem(menuIdTime).setVisible(true).setIcon(R.drawable.icon);//设置菜单项可见性          return true;    }        public boolean onOptionsItemSelected(MenuItem item) {//选择了一个菜单项的时候调用                //这里可以预先处理想要的变量          switch (item.getItemId()) {          case menuIdRegiste://一项一项的处理想要做的,不用我介绍了吧              Toast.makeText(this, R.string.menuIdRegisteContent, Toast.LENGTH_LONG).show();            showDialog(DIALOG_KEY);            return true;        case menuIdBack:        Toast.makeText(this, R.string.menuIdBackContent, Toast.LENGTH_LONG).show();        showNotify();        return true;        case menuIdLogin:        showDialog(DIALOG_LOGIN);        return true;        case menuIdDate:        showDialog(DIALOG_DATE);        return true;        case menuIdTime:        showDialog(DIALOG_TIME);        return true;        }            return super.onOptionsItemSelected(item);      }                  private static final int DIALOG_KEY = 0;    private static final int DIALOG_LOGIN = 3;    private static final int DIALOG_DATE = 4;    private static final int DIALOG_TIME = 5;    @Overrideprotected Dialog onCreateDialog(int id) {switch (id) {case DIALOG_KEY:ProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setTitle("通讯录");progressDialog.setMessage("获取通讯录中...请稍候");progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);progressDialog.setIndeterminate(true);//不明确progressDialog.setCancelable(true);//是否可以按退回按键取消progressDialog.setButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.cancel();//removeDialog(DIALOG_KEY);}});progressDialog.setCanceledOnTouchOutside(true);return progressDialog;case DIALOG_LOGIN:View dialogview=LayoutInflater.from(this).inflate(R.layout.main, null);Dialog loginDialog=new AlertDialog.Builder(this).setTitle("登录").setView(dialogview)//this.findViewById(R.layout.main),不可以,why?.setCancelable(true).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.cancel();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.cancel();}}).create();loginDialog.setCanceledOnTouchOutside(true);return loginDialog;case DIALOG_DATE:Calendar c = Calendar.getInstance();DatePickerDialog dateDialog=new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener(){@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {// TODO Auto-generated method stubshowDialog(DIALOG_KEY);}},c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));return dateDialog;case DIALOG_TIME:Calendar c2 = Calendar.getInstance();  TimePickerDialog timeDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {                  @Override                  public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                  showDialog(DIALOG_KEY);                }              }, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);  return timeDialog;}return null;}        private void showNotify(){    Notification notice=new Notification();    notice.icon=R.drawable.icon;    notice.tickerText="您有一条新的信息";    notice.defaults=Notification.DEFAULT_SOUND;    notice.when=10L;    // 100 毫秒延迟后,震动 250 毫秒,暂停 100 毫秒后,再震动 500 毫秒  //    notice.vibrate = new long[] { 100, 250, 100, 500 };      notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, null, 0));    NotificationManager manager=(NotificationManager)getSystemService(this.NOTIFICATION_SERVICE);    manager.notify(0,notice);    }}

热点排行