Android UI基础之Dialog对话框的使用
来源:互联网 发布:青牛软件手机卡 编辑:程序博客网 时间:2024/06/05 00:52
Android UI基础之Dialog对话框的使用
在Android开发中,经常会需要在Android界面上弹出一些对话框,比如咨询用户或者让用户选择,这些功能称之为Android Dialog ,在使用Android的过程中,Android Dialog的类型有不同的类型。
一般对话框如下:
代码实现如下:
// 创建一个提示对话框的构建器(构造者)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示");
builder.setMessage("请问你有女朋友吗?");
builder.setIcon(R.mipmap.ic_launcher);//设置图标
// 设置一个“正面按钮”
builder.setPositiveButton("有", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你可以走了!!", Toast.LENGTH_SHORT).show();
}
});
// 设置一个反面按钮、
builder.setNegativeButton("木有", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "欢迎来到单身俱乐部!!", Toast.LENGTH_SHORT).show();
}
});
// 中立的按钮
builder.setNeutralButton("隐藏对话框", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "有没有不重要!!", Toast.LENGTH_SHORT).show();
}
});
builder.show(); // 为下面两行代码的简写
// AlertDialog dialog = builder.create();
// dialog.show();
}
上面的代码比较繁琐,每一个按钮都得重写事件吗,注意到onClick ()参数中有一个which,因此可以使用switch case 语句,使工作变得简单。
二:列表对话框
效果图如下:
实现代码如下:
public void dialog_click2(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择一个平台使用:");
final String[] items = {"Android", "iOS", "Windows Phone"};
// 设置选项
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
三:单选按钮对话框:
代码实现如下:
String result = "Android";
public void dialog_click4(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择一个平台使用:");
final ArrayList<String> list = new ArrayList<>();//存放选择的列表项
final String[] items = {"Android", "iOS", "Windows Phone"};
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result = items[which];
Toast.makeText(MainActivity.this, "你选择的是" + items[which], Toast.LENGTH_SHORT).show();
}
});
// 设置一个“正面按钮”
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
dialog.dismiss();//关掉对话框
}
});
// 设置一个反面按钮、
builder.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
list.clear();
dialog.dismiss();
}
});
builder.show();
}
四:多选列表对话框:
public void dialog_click3(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择一个平台使用:");
final ArrayList<String> list = new ArrayList<>();//存放选择的列表项
final String[] items = {"Android", "iOS", "Windows Phone"};
builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
list.add(items[which]);
} else {
list.remove(items[which]);
}
}
});
// 设置一个“正面按钮”
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, list.toString(), Toast.LENGTH_SHORT).show();
dialog.dismiss();//关掉对话框
}
});
// 设置一个反面按钮、
builder.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
list.clear();
dialog.dismiss();
}
});
builder.show();
}
五:自定义对话框 (登录对话框)
对于自定义的对话框,应该添加中间的布局,分别用来显示用户名,与用户密码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/activity_horizontal_margin">
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="userName"
android:inputType="textPersonName" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="passWord"
android:inputType="textPassword" />
</LinearLayout>
在MiainActivity中代码如下:
public void dialog_click5(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("登录对话框");
builder.setIcon(R.mipmap.ic_launcher);
//将布局添加到对话框中 (API 21支持 builder.setView(R.layout.login_layout);
// 或者如下:
// 实例化布局文件 (把一个布局文件转换成view对象)
final View v = getLayoutInflater().inflate(R.layout.login_layout, null);
builder.setView(v);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 获取组件的内容
EditText t = (EditText) v.findViewById(R.id.username);
EditText p = (EditText) v.findViewById(R.id.password);
String user_name = t.getText().toString();
String pass_word = p.getText().toString();
Toast.makeText(MainActivity.this, user_name +"---"+pass_word, Toast.LENGTH_SHORT).show();
dialog.dismiss();//关掉对话框
}
});
// 设置一个反面按钮、
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();// 显示对话框
}
- Android UI基础之Dialog对话框的使用
- Android UI之对话框(dialog)
- jQuery UI之对话框(dialog)的使用
- 【Android】之【UI篇---Dialog(对话框)】
- android ui ->>Dialog对话框
- Android开发基础之Dialog对话框大全
- Android基础之Dialog的使用
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android UI系列-----Dialog对话框
- Android之UI--打造12种Dialog对话框
- Android UI设计之<七>自定义Dialog,实现各种风格效果的对话框
- 树莓派个人实测 Q&A(最新修改使用Manjaro连接远程桌面) (二)
- AndroidUI基础之Spinner的使用
- 在摄影表中把所有骨骼关键帧显示出来
- LeetCode 70 Climbing Stairs(爬楼梯)(动态规划)(*)
- Android UI之AutoCompleteTextView
- Android UI基础之Dialog对话框的使用
- Derivatives of matrix
- 【BLE】CC2541之通过广播发送自定义数据
- 欢迎使用CSDN-markdown编辑器
- Python字典
- 二十一(随机初始化在无监督特征学习中的作用)
- 二十二(linear decoder练习)
- 二十三(Convolution和Pooling练习)
- 二十四(stacked autoencoder练习)