Dialog&Notification&OptionsMenu练习

系统 1596 0
下面的menu没有意义,仅仅是个练习而已,看图先:
Dialog&Notification&OptionsMenu练习
布局:
    
<?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:id="@+id/textViewName"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/name"
    android:textSize="20dp"
    />
    <EditText 
    android:id="@+id/editTextName"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
    <TextView  
	android:id="@+id/textViewAge"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/age"
    android:textSize="20dp"
    />
    <EditText 
    android:id="@+id/editTextAge"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
</LinearLayout>


  


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;
    @Override
	protected 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() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					dialog.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() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						dialog.cancel();
					}
				})
				.setNegativeButton("取消", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						dialog.cancel();
					}
				})
				.create();
				loginDialog.setCanceledOnTouchOutside(true);
				return loginDialog;
			case DIALOG_DATE:
				Calendar c = Calendar.getInstance();
				DatePickerDialog dateDialog=new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener(){
					@Override
					public void onDateSet(DatePicker view, int year,
							int monthOfYear, int dayOfMonth) {
						// TODO Auto-generated method stub
						showDialog(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);
    }
}

  

Dialog&Notification&OptionsMenu练习


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论