日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android自定义dialog开源库,android-dialog: 此框架提供五种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口。...

發布時間:2025/3/20 编程问答 18 豆豆

android-dialog

此框架提供七種對話框的顯示,并支持對話框的擴展,目的是為了提供對話框的統一管理,并提供對話框顯示的公共接口。

LoadingDialog:正在加載對話框

MessageDialog:消息對話框,只有確定按鈕

AlertDialog:確認對話框,有確認和取消按鈕

ListDialog:普通選擇、單選或者多選對話框

EditTextDialog:有一個editText和checkbox的對話框

ProgressDialog:一個可以顯示具體進度的對話框

BottomSheetDialog:一個在底部彈出的對話框

支持擴展的ContentViewDialog

gradle配置方式

compile 'cn.yhq:android-dialog:1.6.0'

使用方法

創建對話框的方式有兩種:

1、使用DialogBuilder直接創建,這種方式創建的對話框不會保存狀態,即當屏幕旋轉等導致的activity重建,對話框會消失。

顯示一個正在加載的對話框

DialogBuilder.loadingDialog(this).show();

顯示一個進度對話框

這個地方需要注意的是需要設置一個ProgressHandler,用于主動更新對話框的進度:

DialogBuilder.ProgressHandler progressHandler =

new DialogBuilder.ProgressHandler();

DialogBuilder.progressDialog(MainActivity.this).progressHandler(progressHandler).show();

// 更新進度

progressHandler.setProgress(progress);

顯示一個消息對話框

DialogBuilder.messageDialog(MainActivity.this).setMessage("消息對話框").show();

顯示一個確認對話框

DialogBuilder.alertDialog(MainActivity.this).setMessage(args.getString("message"))

.setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, "點擊了確認按鈕", Toast.LENGTH_LONG).show();

}

}).create();

顯示一個普通選擇對話框

DialogBuilder.listDialog(MainActivity.this).setChoiceItems(list)

.setChoiceType(DialogBuilder.TYPE_CHOICE_NORMAL)

.setOnChoiceListener(new DialogBuilder.OnChoiceListener() {

// 對話框關閉后回調的一個方法,返回選擇的條目

@Override

public void onChoiceItem(Object item) {

Toast.makeText(MainActivity.this, "最終選擇了:" + item, Toast.LENGTH_LONG).show();

}

}).setOnChoiceClickListener(new DialogInterface.OnClickListener() {

// 點擊條目后回調的一個方法

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, "點擊了第" + (which + 1) + "個條目",

Toast.LENGTH_LONG).show();

}

}).show();

顯示一個單選對話框

DialogBuilder.listDialog(MainActivity.this).setChoiceItems(list)

.setChoiceType(DialogBuilder.TYPE_CHOICE_SINGLE)

.setOnChoiceListener(new DialogBuilder.OnChoiceListener() {

// 對話框關閉后回調的一個方法,返回選擇的條目

@Override

public void onChoiceItem(Object item) {

Toast.makeText(MainActivity.this, "最終選擇了:" + item, Toast.LENGTH_LONG).show();

}

}).setOnChoiceClickListener(new DialogInterface.OnClickListener() {

// 選擇某一個條目的時候回調的一個方法,返回選擇的是哪一個條目

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, "點擊了第" + (which + 1) + "個條目",

Toast.LENGTH_LONG).show();

}

}).setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, "點擊了確定按鈕", Toast.LENGTH_LONG).show();

}

}).show();

顯示一個多選對話框

// 已經選好的條目

int[] checkedItems = {1, 3, 4};

DialogBuilder.listDialog(MainActivity.this)

.setChoiceType(DialogBuilder.TYPE_CHOICE_MULTI).setChoiceItems(list)

.setCheckedItems(checkedItems)

.setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, "點擊了確定按鈕", Toast.LENGTH_LONG).show();

}

}).setOnMultiChoiceClickListener(new DialogInterface.OnMultiChoiceClickListener() {

// 選擇或者取消選擇某一個條目的時候回調的一個方法,返回某一個條目的選擇情況

@Override

public void onClick(DialogInterface dialog, int which, boolean isChecked) {

Toast.makeText(MainActivity.this,

(isChecked ? "選擇" : "取消選擇") + "了第" + (which + 1) + "個條目", Toast.LENGTH_LONG)

.show();

}

}).setOnMultiChoiceListener(new DialogBuilder.OnMultiChoiceListener() {

// 對話框關閉后回調的一個方法,返回選擇的條目

@Override

public void onMultiChoiceItems(Object[] items) {

Toast.makeText(MainActivity.this, "最終選擇了:" + Arrays.toString(items),

Toast.LENGTH_LONG).show();

}

}).show();

顯示一個文本輸入對話框

DialogBuilder.editTextDialog(MainActivity.this)

.setOnEditTextDialogListener(new DialogBuilder.OnEditTextDialogListener() {

@Override

public void onEditTextCreated(EditText editText, CheckBox checkbox) {

editText.setHint("請輸入文本內容");

checkbox.setVisibility(View.VISIBLE);

checkbox.setText("checkbox文本");

}

@Override

public boolean onEditTextSelected(EditText editText, String text,

CheckBox checkbox, boolean checked) {

Toast.makeText(MainActivity.this, editText.getText().toString(),

Toast.LENGTH_LONG).show();

return false;

}

}).show();

顯示一個BottomSheet對話框

View sheetView = View.inflate(MainActivity.this, android.R.layout.simple_list_item_1, null);

TextView sheetViewTextView = (TextView) sheetView.findViewById(android.R.id.text1);

sheetViewTextView.setText("自定義視圖");

DialogBuilder.bottomSheetDialog(MainActivity.this).setContentView(sheetView).show();

顯示一個自定義對話框

View customView =

View.inflate(MainActivity.this, android.R.layout.simple_list_item_1, null);

TextView textView = (TextView) customView.findViewById(android.R.id.text1);

textView.setText("自定義視圖");

DialogBuilder.otherDialog(MainActivity.this).setContentView(customView).show();

2、使用DialogManager,配合IDialogCreator接口創建的對話框,這種方式創建的對話框會保存狀態,在屏幕旋轉后對話框不會消失。

DialogManager dialogManager = new DialogManager(this);

Bundle args = new Bundle();

args.putString("message", "確認對話框");

dialogManager.showDialog(1, args);

@Override

public IDialog createDialog(int id, Bundle args) {

switch (id) {

case 1:

// 這里返回的就是按照普通方式創建的對話框

return DialogBuilder.alertDialog(this).setMessage(args.getString("message"))

.setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(MainActivity.this, "點擊了確認按鈕", Toast.LENGTH_LONG).show();

}

}).create();

}

return null;

}

3、當使用第二種方式的時候,你可以在你的Activity基類里面實現IDialogCreator接口,并提供DialogManager的封裝方法,這樣在你的Activity子類里面重寫IDialogCreator接口方法后,直接調用顯示對話框的方法showDialogFragment就可以直接顯示對話框了。具體可以參考BaseActivity與BaseFragment。

public class BaseActivity extends AppCompatActivity implements IDialogCreator {

private DialogManager dialogManager;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

dialogManager = new DialogManager(this);

}

public void showDialogFragment(int id) {

dialogManager.showDialog(id);

}

public void showDialogFragment(int id, Bundle bundle) {

dialogManager.showDialog(id, bundle);

}

@Override

public IDialog createDialog(int id, Bundle args) {

return null;

}

}

總結

以上是生活随笔為你收集整理的android自定义dialog开源库,android-dialog: 此框架提供五种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。