Android AlterDialog的用法

1、Dialog的创建

private void intDialog() {
    //创建Dialog对象
    AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
    //创建Dialog的标题
    builder.setTitle("退出界面");
    //创建标题图标
    builder.setIcon(R.id.icon);
    //设置退出内容文本
    builder.setMessage("您确定退出界面吗?");
    //添加Dialog的按钮,参数为1、按键内容,2、按键的监听,如没有操作就写null
    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this,"已经退出",Toast.LENGTH_LONG).show();
        }
    });
    //启动buider
    dialog=builder.create();
    showDialog();
}
public void showDialog(){
    //如果dialog不为空,而不是正在运行,就启动。注意要创建个全局dialog方便跨方法使用
    if(dialog!=null&&!dialog.isShowing()){
        dialog.show();
    }
}
2、按返回键是触发的方法

//当按返回键时显示dialog
public void onBackPressed() {
    intDialog();
}

3、普通列表的Dialog

A、先绑定接口,方便操作 B、创建列表名称列表

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
btn02.setOnClickListener(this);
<string-array name="color_name">
    <item>红色</item>
    <item>绿色</item>
    <item>蓝色</item>
</string-array>

c、创建普通列表Dialog对象

public  void showCommonListDialog(){
    //创建Dialog对象
    AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
    //创建Dialog的标题
    builder.setTitle("退出界面");
    //创建标题图标
    builder.setIcon(R.id.icon);
    //填充Dialog。。一、列表的id,二、创建监听对象
    builder.setItems(R.array.color_name, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which){
                case 0:
                    tvshow.setTextColor(Color.RED);break;
                case 1:
                    tvshow.setTextColor(Color.GREEN);break;
                case 2:
                    tvshow.setTextColor(Color.BLUE);break;

            }
        }
    });
    builder.create();
    builder.show();

}
4、图文列表的的用法——先创建对应的文本列表

<string-array name="set_name">
    <item>Wifi设置</item>
    <item>蓝牙</item>
    <item>红外线</item>
    <item>未知名</item>
</string-array>
<string-array name="set_image">
    <item>image01</item>
    <item>image02</item>
    <item>image03</item>
    <item>image04</item>
</string-array>
5、图文列表的的用法——创建图文列表方法

public void showImageDialog(){
    //创建Dialog对象
    AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
    //创建Dialog的标题
    builder.setTitle("退出界面");
    //创建标题图标
    builder.setIcon(R.id.icon);
    //获得文本资源
    String[] set_name=getResources().getStringArray(R.array.set_name);
    //获得图片资源
    String[] set_image=getResources().getStringArray(R.array.set_image);
    //创建ListMap集合存放数据
    List<Map<String,Object>> date=new ArrayList<Map<String,Object>>();

    //遍历数组存放资源进去
        for(int i=0;i<set_name.length;i++){
            //注意map放在循环里面里面
            Map<String,Object> map=new HashMap<String, Object>();
            map.put("setname",set_name[i]);
            //有三个参数,1、这图片的名称  2、文件名,3、包名
            int imageId=getResources().getIdentifier(set_image[i],"drawable",getPackageName());
            map.put("setimage",imageId);
            date.add(map);
        }
    /*
    有五个参数
    1this
    2、资源组名称
    3、图文布局xml文件
    4、资源组一一对应的mapk
    5、列表布局文件的里面的id
     */
    SimpleAdapter adapter=new SimpleAdapter(this,date,R.layout.layout,
            new String[]{"setname","setimage"},
            new int[]{R.id.tv01,R.id.image01});
    builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            switch (which){
                case 0:
                    Toast.makeText(MainActivity.this, "已经打开Wifi", Toast.LENGTH_SHORT).show();
                case 1:
                    Toast.makeText(MainActivity.this, "已经打开蓝牙", Toast.LENGTH_SHORT).show();
                case 2:
                    Toast.makeText(MainActivity.this, "已经打开红外线", Toast.LENGTH_SHORT).show();
                case 3:
                    Toast.makeText(MainActivity.this, "未知打开", Toast.LENGTH_SHORT).show();
            }
        }
    });
    builder.create().show();
6、单选Dialog的用法

public void showsigleDialog(){
    //创建Dialog对象
    AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
    //创建Dialog的标题
    builder.setTitle("选择字体");
    //创建标题图标
    builder.setIcon(R.id.icon);
    final String[] fortnum=getResources().getStringArray(R.array.fortnum);
    //创建单选对象
    builder.setSingleChoiceItems(R.array.fortsize, -1, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which){
                case 0:tvshow.setTextSize(Float.parseFloat(fortnum[which]));break;
                case 1:tvshow.setTextSize(Float.parseFloat(fortnum[which]));break;
                case 2:tvshow.setTextSize(Float.parseFloat(fortnum[which]));break;
            }
            dialog.dismiss();
        }
    });
    dialog=builder.create();
    dialog.show();
}
7,日期dilog的用法

public void showDateAlter(){
    //获取当前时间
    Calendar calendar=Calendar.getInstance();
    year=calendar.get(calendar.YEAR);
    monthOfYear=calendar.get(calendar.MONTH);
    dayOfMonth=calendar.get(calendar.DAY_OF_MONTH);
    /*调用DatePickerDialog对象
5个参数,,1MainActivity.this
               2、监听选择的日期并且实现吐司。
               345、调入当前日期
     */

    DatePickerDialog dialog=new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            //setTitle(year+""+monthOfYear+""+dayOfMonth+"");
            text=year+""+monthOfYear+""+dayOfMonth+"";
            Toast.makeText(MainActivity.this,"你选择的日期是:"+text,Toast.LENGTH_LONG).show();

        }
    },year,monthOfYear,dayOfMonth);
    dialog.show();





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值