//首先就是一个简单的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(); } }); } }