一.ProgressDialog
1.1方法解釋
setMessage 設置彈框的信息 setTitle 設置彈框的標題 setIcon 設置彈框圖標
setIndeterminate
當設置setIndeterminate(true)參數爲真時,進度條採用不明確顯示進度的‘模糊模式’,即滾輪的進度不是實際文件下載的進度
(false)參數爲假時, 進度條不採用‘模糊模式’,而採用明確顯示進度的‘明確模式’。
setCancelable(false) dialog彈出後會點擊屏幕或物理返回鍵,dialog不消失
setCanceledOnTouchOutside(false) dialog彈出後會點擊屏幕,dialog不消失;點擊物理返回鍵dialog消失
setProgressStyle 彈框的樣式設置
setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 設置水平進度條
setProgressStyle(ProgressDialog.STYLE_SPINNER);// 設置進度條的形式爲圓形轉動的進度條
1.2實例操作
public class ProgressUtil {
private static ProgressDialog mDialog;
private static void createLoadingDialog(Context context) {
hide();
mDialog = new ProgressDialog(context);
mDialog.setMessage("正在上傳照片,請稍等...");
// mDialog.setTitle("正在上傳數據中");
mDialog.setIcon(R.drawable.upload);
//參數爲真時,進度條採用不明確顯示進度的‘模糊模式,即無法查看真實的進度,如果爲false則爲真實進度
mDialog.setIndeterminate(false);
//dialog彈出後會點擊屏幕或物理返回鍵,dialog不消失
mDialog.setCancelable(false);
//dialog彈出後會點擊屏幕,dialog不消失;點擊物理返回鍵dialog消失
mDialog.setCanceledOnTouchOutside(false);
mDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
}
/**
* 顯示進度dialog
* @param context 上下文對象
* @param
*/
public static void show(Activity context) {
if (context == null || context.isFinishing()) return;
createLoadingDialog(context);
mDialog.show();
}
/**
* 顯示進度dialog
* @param context 上下文對象
* @param message 顯示的message
*/
public static void show(Activity context, String message) {
createLoadingDialog(context);
mDialog.setMessage(message);
mDialog.show();
}
public static void hide() {
if (mDialog != null && mDialog.isShowing()) {
mDialog.dismiss();
mDialog = null;
}
}
public static boolean isShowing() {
if (mDialog != null) {
return mDialog.isShowing();
}
return false;
}
}
二.AlertDialog.Builder
2.1方法解釋
setTitle :爲對話框設置標題
setIcon :爲對話框設置圖標
setMessage:爲對話框設置內容
setView : 給對話框設置自定義樣式
setItems :設置對話框要顯示的一個list,一般用於顯示幾個命令時
setMultiChoiceItems :用來設置對話框顯示一系列的複選框
setSingleChoiceItems :用來設置對話框顯示一系列的單選框
setNeutralButton :普通按鈕
setPositiveButton :給對話框添加"Yes"按鈕
setNegativeButton :對話框添加"No"按鈕
create : 創建對話框
show :顯示對話框
2.2簡單彈框顯示
new AlertDialog.Builder(this)
.setTitle("警告")
.setMessage("您是否註銷")
.setNegativeButton("取消", null)
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
用戶點擊確定後的操作
}
}).create().show();
2.3列表彈框
//查驗員名稱列表
final String[] names = new String[informationBeans.size()];
//初始化查驗員名稱列表
for (int i = 0; i < informationBeans.size(); i++) {
names[i] = informationBeans.get(i).getCyyName() + "";//加引號防止警員編號或姓名爲null
}
AlertDialog.Builder listDialog =
new AlertDialog.Builder(LoginActivity.this);
listDialog.setTitle("請選擇查驗員姓名");
listDialog.setCancelable(true);
listDialog.setItems(names, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// which 下標從0開始
LogUtils.w(informationBeans.get(which).toString());
}
}).show();
2.4單選列表
final int[] index = new int[1];
final String[] items4 = new String[]{"item9", "item4", "item1", "item3"};//創建item
new AlertDialog.Builder(this)
.setTitle("選擇您喜歡的item")
.setIcon(R.mipmap.ic_launcher)
.setSingleChoiceItems(items4, 0, new DialogInterface.OnClickListener() {//添加單選框
@Override
public void onClick(DialogInterface dialogInterface, int i) {
index[0] = i;
}
})
.setPositiveButton("確定", new DialogInterface.OnClickListener() {//添加"Yes"按鈕
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(RequestAction.this, "這是確定按鈕" + "點的是:" + items4[index[0]], Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("取消", null)
.setCancelable(false).create().show();
2.5多選列表
final String[] items5 = {"item1", "item2", "item3", "item4"};
final boolean[] booleans = {true, true, false, false};
new AlertDialog.Builder(this)
.setTitle("選擇您喜歡的")
.setIcon(R.mipmap.ic_launcher)
.setMultiChoiceItems(items5, booleans, new DialogInterface.OnMultiChoiceClickListener() {//創建多選框
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
booleans[i] = b;
}
})
.setPositiveButton("確定", new DialogInterface.OnClickListener() {//添加"Yes"按鈕
@Override
public void onClick(DialogInterface dialogInterface, int i) {
StringBuilder stringBuilder = new StringBuilder();
for (int a = 0; a < booleans.length; a++) {
if (booleans[a]) {
stringBuilder.append(items5[a]).append(",");
}
}
Toast.makeText(RequestAction.this, "選中的是:" +
stringBuilder.toString(), Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("取消", null)
.setCancelable(false).create().show();
2.6自定義Adapter
final String[] items6 = {"item1", "item2", "item3", "item4"};
new AlertDialog.Builder(this)
.setTitle("標題")
.setIcon(R.mipmap.ic_launcher)
.setAdapter(new ArrayAdapter<String>(RequestAction.this, R.layout.item, R.id.tv, items6), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(RequestAction.this, "點的是:" + items6[i], Toast.LENGTH_SHORT).show();
}
})
.create().show();
R.layout.item對應的佈局文件,R.id.tv對應的控件
2.7自定義view的用法
final AlertDialog.Builder alertDialog7 = new AlertDialog.Builder(this);
View view1 = View.inflate(this, R.layout.activity_alter_dialog_setview, null);
final EditText et = view1.findViewById(R.id.et);
Button bu = view1.findViewById(R.id.button);
alertDialog7
.setTitle("Login")
.setIcon(R.mipmap.ic_launcher)
.setView(view1)
.create();
final AlertDialog show = alertDialog7.show();
bu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(RequestAction.this, "電話" + et.getText().toString(), Toast.LENGTH_SHORT).show();
show.dismiss();
}
});