zoukankan      html  css  js  c++  java
  • Android笔记之AlertDialog使用

    一、使用AlertDialog.Builder创建对话框需要了解以下几个方法:

    setTitle :为对话框设置标题
    setIcon :为对话框设置图标
    setMessage:为对话框设置内容
    setView : 给对话框设置自定义样式
    setItems &  setSingleChoiceItems:设置对话框要显示的一个list,一般用于显示几个命令时
    setMultiChoiceItems :用来设置对话框显示一系列的复选框
    setNeutralButton    :普通按钮setPositiveButton   :给对话框添加"Yes"按钮
    setNegativeButton :对话框添加"No"按钮
    create : 创建对话框
    show :显示对话框

    二、创建如下对话框

    Dialog alertDialog = new AlertDialog.Builder(this). 
                    setTitle("确定删除?"). 
                    setMessage("您确定删除该条信息吗?"). 
                    setIcon(R.drawable.ic_launcher). 
                    setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override 
                        public void onClick(DialogInterface dialog, int which) { 
                            // TODO Auto-generated method stub  
                            //按确定后的操作
    } }). setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub
                            //按取消后的操作
    } }). setNeutralButton("查看详情", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }). create(); alertDialog.show();

    三、创建列表对话框

    final String[] items={"删除","打开","复制","剪切"};
    final
    Dialog ad=new AlertDialog.Builder(this). setTitle("文件选项"). setItems(items,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "已选择"+items[which], Toast.LENGTH_SHORT).show(); } }).
          create(); btn1.setOnClickListener(
    new OnClickListener(){ public void onClick(View v){ ad.show(); }

    注意:(1)一个方法A中定义的变量在另一个方法B中要被调用,必须为final,即使B在A方法的里面。

    (2)items[which]:列表项中被选择的项

    (3)将setItems(items,new DialogInterface.OnClickListener() {})替换为

    setSingleChoiceItems(items,2,new DialogInterface.OnClickListener(){})则为单项按钮,2代表默认选择第3个,-1代表默认不选择。

     (4)如果new AlertDialog.Builder(this).出现“ constructor AlertDialog.Builder(new View.OnClickListener(){}) is  undefined”的错误提示

    在“this”前面加上本Activity名称就行

    四、自定义对话框样式

    (1)给对话框添加一个控件,如EdiText,只需 .setView(new EditText(this))

     EditText name=new EditText(this);
      Dialog alertDialog =new AlertDialog.Builder(ReadText.this). 
      setTitle("重命名").
      setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override 
                public void onClick(DialogInterface dialog, int which) { 
                    // TODO Auto-generated method stub  
                } 
            }). 
    setView(name).
    create(); alertDialog.show();

    (2)给Dialog设计布局文件:rename_dialog.xml,布局文件只涉及对话框的中间部分,不改变title和button

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
      xmlns:android="http://schemas.android.com/apk/res/android">
        <EditText android:id="@+id/rename_editText" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_marginLeft="14.0dip" 
            android:layout_marginTop="22.0dip"
            android:layout_marginRight="14.0dip" 
            android:layout_marginBottom="64.0dip" 
            android:singleLine="true" />
    </LinearLayout>

    代码部分

            LayoutInflater factory = LayoutInflater.from(ReadText.this);  
            //得到自定义对话框  
            View DialogView = factory.inflate(R.layout.rename_dialog, null);
            final EditText name=(EditText)DialogView.findViewById(R.id.rename_editText);//初始化对话框组件
            name.setText(Title_Name.getText().toString());
            name.selectAll();//让输入框文本全选
            Dialog alertDialog =new AlertDialog.Builder(ReadText.this).
            setTitle("重命名").
            setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub  
                    //按确定后的操作
                }
            }).
            setView(DialogView).create();  
            alertDialog.show(); 
  • 相关阅读:
    【转】Java中super和this的几种用法与区别
    公寓上网新认证方式破解研究
    移动设计
    破解哈工程大学深澜认证路由器
    Arch Linux安装记录
    foreach新解
    工具大全(转载)
    Linux 入门
    设置为驼峰命名
    efcore Add-Migration 错误
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3261081.html
Copyright © 2011-2022 走看看