常用对话框

1.菜单键

这个比较特殊,在menu下定义一个xml,menu节点

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.optionmenudemo.MainActivity" >
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="设置"/>
    <item
        android:id="@+id/action_option"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="选项"/>
    <item
        android:id="@+id/action_exit"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="退出"/>
</menu>


 

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.mymenu ,menu);	
		return true;
		/*//注意第二个参数,必须设置ID,否则itemSelect里的ID统一分配0,无法区分
		menu.add(0,0,0,"Wallpaper");
		menu.add(0,1,0,"ManageApp");
		menu.add(0,2,0,"System Setting");		
		return true;	*/	
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();	
        if (id==R.id.action_settings) {
			Toast.makeText(this, "即将去设置", 1).show();
		}
		else if (id==R.id.action_option) {
			Toast.makeText(this, "即将去option选单", 1).show();
		}
		else if (id==R.id.action_exit) {
			Toast.makeText(this, "即将退出", 1).show();
		}
		System.out.println("MainActivity.onOptionsItemSelected()"+id);	
		return super.onOptionsItemSelected(item);
		/*if (id==0) {
		Toast.makeText(this, "即将去设置墙纸", 1).show();
	}
	else if (id==1) {
		Toast.makeText(this, "即将去ManageApp", 1).show();
	}
	else if (id==2) {
		Toast.makeText(this, "即将去System Setting", 1).show();
	}*/
	}
}

 

2.普通确定、取消框

用了链式写法,注销掉的也可以,另外builder本身就是dialog的子类

public void showDialog1(View v){
		/*//属于alertDialog类,参数为context
		Builder builder = new Builder(this);
	    builder.setTitle("Android学习");
	    builder.setMessage("是否浏览百度");
	    //第二个参数是一个listener,暂时先置空
	    builder.setPositiveButton("确认", new OnClickListener(){
			@Override
			public void onClick(DialogInterface dialog, int which) {
				
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);
				Uri uri = Uri.parse("http://www.baidu.com/");
				intent.setData(uri);
				
				Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com/"));	
				startActivity(intent);
			}});
	    builder.setNegativeButton("取消", null);
	    //show出来用户才能看到
	    builder.show();*/
		
		  /* Builder builder =  new Builder(this) ;
		   builder.setTitle("Android学习");
		   builder.setMessage("是否浏览baidu?");
		   builder.setPositiveButton("确认", new OnClickListener() {	
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);
				Uri uri =Uri.parse("http://www.baidu.com/");
				intent.setData(uri);
				//定义的intent里面么有规定type
				startActivity(intent);
			}
		    });
		   builder.setNegativeButton("取消", null);	   
		   Dialog dialog = builder.create();
		   dialog.show();    */
		
		new Builder(this)  
	    .setTitle("Android学习")
	    .setMessage("是否浏览百度?")
	    .setPositiveButton("确认", new OnClickListener() {	
		@Override
		public void onClick(DialogInterface dialog, int which) {
			// TODO Auto-generated method stub
			Intent intent = new Intent();
			intent.setAction(Intent.ACTION_VIEW);
			Uri uri =Uri.parse("http://www.baidu.com/");
			intent.setData(uri);
			//定义的intent里面么有规定type
			startActivity(intent);
		}
	    })
	    .setNegativeButton("取消", null)   
	    .show(); 
	}



3. 列表选择框

public void showDialog2(View v){	
		final String[] items = {"c","java" ,"c++"};
		new Builder(this)
		.setTitle("请选择学习的内容")
		.setItems(items, new OnClickListener() {		
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub						
				System.out
						.println("MainActivity.showDialog2(...).new OnClickListener() {...}.onClick()"+which);							
				String choice = items[which];			
				Toast.makeText(MainActivity.this, choice, 1).show();
			}
		})
		.show();
	}


 

4.列表单选框

public void showDialog3(View v){	
		final String[] items = {"c","java" ,"c++"};	
		new Builder(this)
		.setTitle("请选择学习的内容")
		//第二个参数表示默认选的哪个,-1表示一个都不选
		.setSingleChoiceItems(items, -1, new OnClickListener() {	
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub				
				dialog.cancel();
				Toast.makeText(MainActivity.this, items[which], 1).show();						
			}
		})
		.show();	
	}

 

5.列表多选框

public void showDialog4(View v){	
	    final String[] items = {"c","java" ,"c++"}; 
	    new Builder(this)
		.setTitle("请选择学习的内容")
		//第二个参数表示哪些默认被选上
 		.setMultiChoiceItems(items, new boolean[]{true,false,true}, new OnMultiChoiceClickListener() {		
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				// TODO Auto-generated method stub			
				if (isChecked) {
					Toast.makeText(MainActivity.this, items[which], 1).show();						
				}
			}
		})
		//多选需要确定
		.setPositiveButton("确定", new OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				//选完主动关闭
				dialog.cancel();
			}
		})
		.show();
	}


 

6.等待提示框

public void showDialog5(View v){
	//第一个参数表示在哪写	
	 final  ProgressDialog dialog =	ProgressDialog.show(this, "警告", "我们正在升级系统,并不要乱按按钮。耐心等待");  
	 //起一个线程,一段时间后自动退出
	 new Thread(new Runnable() {		
		@Override
		public void run() {
			//方法1,系统的睡眠
			/*try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}*/
			//方法2,dialog带的睡眠取消
			SystemClock.sleep(2000);
		    dialog.cancel();
		}
	 }).start();	  
	}


 

7.等待+进度提示

public void showDialog6(View v){
		//不能和等待提示框那样直接show文字,需要逐项设置
		 final  ProgressDialog dialog =	new ProgressDialog(this);
		 dialog.setTitle("提示");
		 dialog.setMessage("我们正在下载,请耐心等待");
		 //告诉系统这是一个进度条
		 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
		 //进度条长度
		 dialog.setMax(100);
		 dialog.show();
		 //之前的进度条不会动,另起线程让他走起来
		 new Thread(new Runnable() {		
				@Override
				public void run() {
				int i = 0;
				while(true){			
					//ProgressBar 这种控件是可以在子线程里更新UI的
					dialog.setProgress(i++);
					SystemClock.sleep(100);
                   if (i>100) {
						break;
					}				
				}
				dialog.cancel();		
				}
			 }).start();	
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值