• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

android安卓:常用对话框设计AlertDialog

武飞扬头像
沐言鸭
帮助1

android安卓之常用对话框设计AlertDialog

学习目的:掌握常用对话框中提示,单选,复选,自定义对话框的设计和使用。

学新通

布局文件

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <TextView
        android:id="@ id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你的选择是:" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@ id/tip_btn"
            android:layout_width="140dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="提示对话框" />

        <Button
            android:id="@ id/tip2_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="自定义提示对话框" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@ id/radio_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="单选对话框" />

        <Button
            android:id="@ id/mul_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="多选对话框" />
    </LinearLayout>

</LinearLayout>
学新通

MainActivity文件

提示

当点击“提示对话框”时,显示内容如下,当点击确定时,文本显示内容为“你的选择是确定”,反之文本内容显示为“你的选择是取消”。

学新通

tip_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setTitle("注意");
                builder.setMessage("你确定要退出吗");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        tv.setText("你的选择是确定");
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        tv.setText("你的选择是取消");
                    }
                });
                builder.create();
                builder.show();
            }
        });
学新通

自定义

当点击“自定义提示对话框”时,显示登录界面,如下图左边,点击确定后效果显示如右边。

学新通

登录界面的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <EditText
        android:id="@ id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名" />
    <EditText
        android:id="@ id/pass"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码" />
</LinearLayout>
学新通

点击事件方法

需要我们了解的是

LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.login_dialog,null);这两句是把另一个登录界面引入到事件中。后通过

builder.setView(layout);来显示登录的布局文件。


tip2_btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        LayoutInflater inflater=getLayoutInflater();
        View layout=inflater.inflate(R.layout.login_dialog,null);
        final EditText etName,etPass;
        etName=layout.findViewById(R.id.name);
        etPass=layout.findViewById(R.id.pass);
        builder.setView(layout);
        builder.setTitle("登录");
        builder.setIcon(R.mipmap.ic_launcher);

        builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                String name=etName.getText().toString().trim();
                String pass=etPass.getText().toString().trim();
                tv.setText("你的用户名是" name ",你的密码是" pass);
            }
        });
        builder.setNegativeButton("取消",null);
        builder.create();
        builder.show();
    }
});

学新通

单选

当点击“单选对话框”时,显示效果如下图左边,选择某个选项后,显示效果如右边。

学新通

radio_btn.setOnClickListener(new View.OnClickListener() {
    String[] items = new String[] {"信管专业","计科专业","软工专业"};
    int choose=0;
    @Override
    public void onClick(View view) {
        AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("选择专业");
        builder.setCancelable(false);
        builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                choose=i;
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                tv.setText("你的专业是" items[choose]);
            }
        });
        builder.setNegativeButton("取消",null);
        builder.create();
        builder.show();
    }
});
学新通

多选

当点击“多选对话框”时,显示效果如下图左边,选择某个选项后,显示效果如右边。

学新通

mul_btn.setOnClickListener(new View.OnClickListener() {
    String[] place = new String[] {"北京","上海","纽约","巴黎"};
    boolean[] check=new boolean[] {false,true,true,false};
    @Override
    public void onClick(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("请选择你去过的城市");
        builder.setMultiChoiceItems(place, check, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                check[i]=b;
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                StringBuilder stringBuilder=new StringBuilder("你去过的城市有:");
                for (int j=0; j<place.length ;j  ){
                    if (check[j]==true){
                        stringBuilder.append(place[j]).append("\t");
                    }
                }
                tv.setText(stringBuilder.toString());
            }
        });
        builder.setNegativeButton("取消",null);
        builder.create();
        builder.show();
    }
});
学新通

最后附上全的main文件

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button tip_btn=findViewById(R.id.tip_btn);
        Button tip2_btn=findViewById(R.id.tip2_btn);
        Button radio_btn=findViewById(R.id.radio_btn);
        Button mul_btn=findViewById(R.id.mul_btn);
        final TextView tv = findViewById(R.id.tv);

        tip_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setTitle("注意");
                builder.setMessage("你确定要退出吗");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        tv.setText("你的选择是确定");
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        tv.setText("你的选择是取消");
                    }
                });
                builder.create();
                builder.show();
            }
        });

        tip2_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                LayoutInflater inflater=getLayoutInflater();
                View layout=inflater.inflate(R.layout.login_dialog,null);
                final EditText etName,etPass;
                etName=layout.findViewById(R.id.name);
                etPass=layout.findViewById(R.id.pass);
                builder.setView(layout);
                builder.setTitle("登录");
                builder.setIcon(R.mipmap.ic_launcher);

                builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        String name=etName.getText().toString().trim();
                        String pass=etPass.getText().toString().trim();
                        tv.setText("你的用户名是" name ",你的密码是" pass);
                    }
                });
                builder.setNegativeButton("取消",null);
                builder.create();
                builder.show();
            }
        });
        radio_btn.setOnClickListener(new View.OnClickListener() {
            String[] items = new String[] {"信管专业","计科专业","软工专业"};
            int choose=0;
            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setTitle("选择专业");
                builder.setCancelable(false);
                builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        choose=i;
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        tv.setText("你的专业是" items[choose]);
                    }
                });
                builder.setNegativeButton("取消",null);
                builder.create();
                builder.show();
            }
        });
        mul_btn.setOnClickListener(new View.OnClickListener() {
            String[] place = new String[] {"北京","上海","纽约","巴黎"};
            boolean[] check=new boolean[] {false,true,true,false};
            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setTitle("请选择你去过的城市");
                builder.setMultiChoiceItems(place, check, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                        check[i]=b;
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        StringBuilder stringBuilder=new StringBuilder("你去过的城市有:");
                        for (int j=0; j<place.length ;j  ){
                            if (check[j]==true){
                                stringBuilder.append(place[j]).append("\t");
                            }
                        }
                        tv.setText(stringBuilder.toString());
                    }
                });
                builder.setNegativeButton("取消",null);
                builder.create();
                builder.show();
            }
        });
    }
}
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbjffe
系列文章
更多 icon
同类精品
更多 icon
继续加载