• Android简易实战教程--第四十五话《几种对话框》


    Android中提供了各种原生的对话框,在使用简单的功能的时候,还不比考虑自定义,使用原生的也能完成功能。本篇简单小案例就介绍三种对话框。

    还是直接上代码吧:

    布局中三个点击事件的按钮:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" 
        android:orientation="vertical"
        >
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确定取消对话框" 
            android:onClick="click1"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="单选对话框" 
            android:onClick="click2"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="多选对话框" 
            android:onClick="click3"
            />
    
    </LinearLayout>
    代码中展示这几个对话框,主要的API介绍,代码中注释的很详细了~:

    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	}
    
    	
    	public void click1(View v){
    		AlertDialog.Builder builder = new Builder(this);//对话框的而上下文必须是活动
    		//设置图标
    		builder.setIcon(android.R.drawable.alert_dark_frame);
    		//设置标题
    		builder.setTitle("欲练此功必先自宫");
    		//设置文本
    		builder.setMessage("李志平,想清楚哦");
    		
    		//设置确定按钮
    		builder.setPositiveButton("确定", new OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				Toast.makeText(MainActivity.this, "感谢使用本软件,再见", 0).show();
    			}
    		});
    		
    		//设置取消按钮
    		builder.setNegativeButton("取消", new OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				Toast.makeText(MainActivity.this, "若不自宫,一定不成功", 0).show();
    			}
    		});
    		//使用创建器,生成一个对话框对象.简单写法可以是bulider.show();
    		AlertDialog ad = builder.create();
    		ad.show();
    	}
    
    	public void click2(View v){
    		AlertDialog.Builder builder = new Builder(this);
    		builder.setTitle("请选择性别");
    		final String[] items = new String[]{
    				"男",
    				"女"
    		};
    		
    		//参数1:数据源;2:默认选中那个项-1表示都不选择;3:选择的监听回调,点击选择才调用
    		builder.setSingleChoiceItems(items, -1, new OnClickListener() {
    			
    			//which:用户所选的条目的下标
    			//dialog:触发这个方法的对话框
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				Toast.makeText(MainActivity.this, "您选择的是:" + items[which], 0).show();
    				//关闭对话框
    				dialog.dismiss();
    			}
    		});
    		builder.show();
    	}
    	
    	public void click3(View v){
    		AlertDialog.Builder builder = new Builder(this);
    		builder.setTitle("请选择您觉得帅的人");
    		final String[] items = new String[]{
    				"龙哥",
    				"杨帅哥",
    				"杨先生",
    				"杨师兄"
    		};
    		
    		final boolean[] checkedItems = new boolean[]{//选中状态的标志位数组
    				true,
    				true,
    				false,
    				false
    		};
    		
    		//第二个参数:默认选择的项,传入null表示都未选中。它代表着那个项是选中的
    		builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
    			
    			
    			//选中某个选项之后,checkedItem中某一项就变味true
    			//which:用户点击的条目的下标
    			//isChecked:用户是选中该条目还是取消该条目,选中就是true
    			@Override
    			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
    				checkedItems[which] = isChecked;//通过改变选中状态的标志位数组来改变,哪个item被选中或取消选中
    			}
    		});
    		
    		//设置一个确定按钮
    		builder.setPositiveButton("确定", new OnClickListener() {
    			
    			@Override
    			public void onClick(DialogInterface dialog, int which) {
    				String text = "";
    				for(int i = 0; i < 4; i++){
    					text += checkedItems[i]? items[i] + "," : "";//三目运算符
    				}
    				Toast.makeText(MainActivity.this, text, 0).show();
    				dialog.dismiss();
    			}
    		});
    		builder.show();
    	}
    }
    

    运行程序如下:


    几种常见的原生对话框介绍完毕了,喜欢我的朋友可以关注我哦~

  • 相关阅读:
    WCF 第八章 安全 确定替代身份(中)使用AzMan认证
    WCF 第八章 安全 总结
    WCF 第八章 安全 因特网上的安全服务(下) 其他认证模式
    WCF Membership Provider
    WCF 第八章 安全 确定替代身份(下)模仿用户
    WCF 第八章 安全 因特网上的安全服务(上)
    WCF 第九章 诊断
    HTTPS的七个误解(转载)
    WCF 第八章 安全 日志和审计
    基于比较的排序算法集
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299488.html
Copyright © 2020-2023  润新知