-
AlertDialog提示框
- 版权声明:本文为博主原创文章,未经博主允许不得转载。https://mp.csdn.net/postedit/81838641
AlertDialog :对话框在程序中不是必备的,可是用好对话框能对我们编写的应用增色不少。采用对话框能够大大添加应用的友好性。比较经常使用的背景是:用户登陆、网络正在下载、下载成功或者失败的提示等。
- Activity中AlertDialog(提示框)的创建方式
1)使用创建AlertDialog.Builder对象。
2)调用AlertDialog.Builder的setTitle()方法设置标题。
3)调用AlertDialog.Builder的setIcon()方法设置图标。
4)调用AlertDialog.Builder的相关方法设置内容。
5)调用AlertDialog.Builder的 setNeutralButton ,setPositiveButton,
setNegativeButton设置按钮。
备注:3个按钮的区别,都是系统默认的按钮,点击后会退出AlertDialog对象,只是默认出现的位置不一样,setNeutralButton(中) ,setPositiveButton(右),setNegativeButton(左)
6)调用AlertDialog.Builder的oncreate()方法创建,
7)调用AlertDialog.Builder的show()进行显示。
- AlertDialog.Builder设置内容的相关方法
1)setMessage() 设置对话框内容为简单的文本内容。
2)setItem() 设置对话框内容为列表项。
3)setSingleChoiceItems() 设置对话框为单选内容列表项。
4)setMultiChoiceItems() 设置对话框为多选列表项。
5)setAdapter() 设置对话框为自定义列表项。
6)setView() 设置对话框为内容自定义view。
- 常用方法
1)使用setMessage()方法设置内容
// 实例化提示框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher); // 设置提示框的图标
builder.setTitle("提示框标题"); // 设置提示框的标题
// 设置提示框显示的文本
builder.setMessage("提示框显示的提示语句");
备注:设置提示框的按钮及按钮监听事件,必须显示指定为DialogInterface.OnClickListener
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {}});
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {}});
builder.create(); // 在Activity中创建提示框
builder.show(); // 在Activity中显示提示框
备注:可以根据需要设置或者不设置提示框的图标、标题、显示的内容和按钮,不设置不显示该部分,程序可以正常运行。
- PopUpWindow(弹出框或弹出窗口)
PopUpWindow: 在android.widget包下,弹出窗口的形式展示。官方文档对该控件的描述是:“一个弹出窗口控件,可以用来显示任意视图(View),而且会浮动在当前 活动(activity)的顶部”。PopupWindow可以让我们实现多种自定义View,例如:menu、alertdialog等弹窗似的View。
- 初始化的方法
//初始化PopupWindow对象
PopupWindow pop = new PopupWindow(
view, //view加载显示的view;
LayoutParams.MATCH_PARENT, //2 设置pop对象显示的宽 ;
LayoutParams.WRAP_CONTENT); //3 设置pop对象显示的高
- 常用的方法
isShowing() //判断PopUpWindow对象是否显示
dimiss() //撤销PopUpWindow对象的显示
showAsDropDown(View v) //设置PopUpWindow对象显示在view的正下方
showAtLocation(View v,gravity, x, y) //设置PopUpWindow对象显示的相对位置
setWidth(int i) //设置PopUpWindow对象显示的宽度
setHeight(int i) //设置PopUpWindow对象显示的高度
- Activity中的使用
public class MainActivity extends Activity {
//声明操作的控件对象
private Button btn;
private LayoutInflater inflater;
private PopupWindow pop;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//调用常见PopUpWindow对象的方法
show();
//与XML布局中的控件绑定
btn = (Button) findViewById(R.id.btn);
//添加监听事件
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//如果pop对象已经显示,就撤销显示
if (pop.isShowing()) {
//撤销显示pop对象
pop.dismiss();
}else {
//设置PopUpWindow对象显示的位置在那个View对象下,
//一般建议写当前操作的view;
//pop.showAsDropDown(v);
//设置PopUpWindow对象显示在当前Activity的位置,
//参数:1 view,操作的iew; 2 方位; 3 X坐标; 4 Y坐标
pop.showAtLocation(v,Gravity.TOP, 0, 0);
}
});
}
//创建PopUpWindow对象
private PopupWindow show(){
if (pop == null) {
//设置布局
View view = getLayoutInflater().inflate(R.layout.activity_mall_window, null);
//获取布局上的控件并添加监听事件
final Button btn1 = (Button) view.findViewById(R.id.mall_pop_btn_cancel);
btn1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(),
"你点击了"+btn1.getText().toString(),
Toast.LENGTH_SHORT).show();
pop.dismiss();
}
});
//初始化pop对象,
//参数:1 view加载显示的view; 2 设置pop对象显示的宽 ; 3 设置pop对象显示的高
pop = new PopupWindow(view, LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
}
return pop; //返回pop
}
}