Android AlertDialog 弹出框 简单实现步骤 各种各样大全

//首先就是一个简单的xml 布局

//对于的五个Button按钮 对应的五种效果



  <Button
        android:id="@+id/btn"
        android:text="第一种"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:layout_weight="1"
        android:id="@+id/btn2"
        android:text="第二种"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:layout_weight="1"
        android:id="@+id/btn3"
        android:text="第三种"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
    android:layout_weight="1"
    android:id="@+id/btn4"
    android:text="第四种"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

    <Button
        android:layout_weight="1"
        android:id="@+id/btn5"
        android:text="第五种"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
//接下来            就是 主页面

这里面有个坑 就是对应的第五个按钮  是一个用户名 和密码框的输入需要在创建一个xml 的 布局  对应的button5里面的 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="username"/>

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/username"
        android:hint="password"
        android:inputType="textPassword"/>
</LinearLayout>



  
     
  

public class TanchukuangActivity extends AppCompatActivity {

    Button btn,btn2,btn3,btn4,btn5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tanchukuang);
        btn = (Button)findViewById(R.id.btn);
        btn2 = (Button)findViewById(R.id.btn2);
        btn3 = (Button)findViewById(R.id.btn3);
        btn4 = (Button)findViewById(R.id.btn4);
        btn5 = (Button)findViewById(R.id.btn5);


        /**
         *  第一种 简单的一种  最为普通**********************************************************************************************
         */
        btn.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //    通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象
                AlertDialog.Builder builder = new AlertDialog.Builder(TanchukuangActivity.this);
                //    设置Title的图标
                builder.setIcon(R.drawable.ic_launcher_background);
                //    设置Title的内容
                builder.setTitle("弹出警告框");
                //    设置Content来显示一个信息
                builder.setMessage("确定删除吗?");
                //    设置一个PositiveButton
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        Toast.makeText(TanchukuangActivity.this, "删除成功: " + which, Toast.LENGTH_SHORT).show();
                    }
                });
                //    设置一个NegativeButton
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        Toast.makeText(TanchukuangActivity.this, "000: " + which, Toast.LENGTH_SHORT).show();
                    }
                });
                //    设置一个NeutralButton
                builder.setNeutralButton("忽略", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        Toast.makeText(TanchukuangActivity.this, "xxx: " + which, Toast.LENGTH_SHORT).show();
                    }
                });
                //    显示出该对话框
                builder.show();
            }
        });


        /**
         * 第二种 方法*********************************************************************************************
         */
        btn2.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View arg0)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(TanchukuangActivity.this);
                builder.setIcon(R.drawable.ic_launcher_background);
                builder.setTitle("选择一个城市");
                //    指定下拉列表的显示数据
                final String[] cities = {"广州", "上海", "北京", "香港", "澳门"};
                //    设置一个下拉的列表选择项
                builder.setItems(cities, new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        Toast.makeText(TanchukuangActivity.this, "选择的城市为:" + cities[which], Toast.LENGTH_SHORT).show();
                    }
                });
                builder.show();
            }
        });


        /**
         * 第三种 方法****************************************************************************************************
         */

        btn3.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(TanchukuangActivity.this);
                builder.setIcon(R.drawable.ic_launcher_background);
                builder.setTitle("请选择性别");
                final String[] sex = {"男", "女", "未知性别"};
                //    设置一个单项选择下拉框
                /**
                 * 第一个参数指定我们要显示的一组下拉单选框的数据集合
                 * 第二个参数代表索引,指定默认哪一个单选框被勾选上,1表示默认‘女‘ 会被勾选上
                 * 第三个参数给每一个单选项绑定一个监听器
                 */
                builder.setSingleChoiceItems(sex, 1, new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        Toast.makeText(TanchukuangActivity.this, "性别为:" + sex[0], Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {

                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {

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

        /**
         * 第四种 方法//****************************************************************************************************************
         */
        btn4.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(TanchukuangActivity.this);
                builder.setIcon(R.drawable.ic_launcher_background);
                builder.setTitle("爱好");
                final String[] hobbies = {"篮球", "足球", "网球", "斯诺克"};
                //    设置一个单项选择下拉框
                /**
                 * 第一个参数指定我们要显示的一组下拉多选框的数据集合
                 * 第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择,
                 * 需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如 {true, false, false, true};
                 * 第三个参数给每一个多选项绑定一个监听器
                 */
                builder.setMultiChoiceItems(hobbies, null, new DialogInterface.OnMultiChoiceClickListener()
                {
                    StringBuffer sb = new StringBuffer(100);
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked)
                    {
                        if(isChecked)
                        {
                            sb.append(hobbies[which] + ", ");
                        }
                        Toast.makeText(TanchukuangActivity.this, "爱好为:" + sb.toString(), Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {

                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {

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

        /**
         * 五种 方法//****************************************************************************************************************
         */
        btn5.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(TanchukuangActivity.this);
                builder.setIcon(R.drawable.ic_launcher_background);
                builder.setTitle("请输入用户名和密码");
                //    通过LayoutInflater来加载一个xml的布局文件作为一个View对象
                View view = LayoutInflater.from(TanchukuangActivity.this).inflate(R.layout.shurukuang, null);
                //    设置我们自己定义的布局文件作为弹出框的Content
                builder.setView(view);

                final EditText username = (EditText)view.findViewById(R.id.username);
                final EditText password = (EditText)view.findViewById(R.id.password);

                builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        String a = username.getText().toString().trim();
                        String b = password.getText().toString().trim();
                        //    将输入的用户名和密码打印出来
                        Toast.makeText(TanchukuangActivity.this, "用户名: " + a + ", 密码: " + b, Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {

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

    }
}



猜你喜欢

转载自blog.csdn.net/bbtianshi/article/details/79500267
今日推荐