日韩性视频-久久久蜜桃-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: 此框架提供五种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口。...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 台湾色综合 | 老太太av | 丝袜老师扒开让我了一夜漫画 | 亚洲欧美a| 欧美美女性生活 | 欧美黄色网 | 激情视频在线免费观看 | av网站网址 | 91精品人妻一区二区三区蜜桃欧美 | 成人在线免费观看网站 | 午夜激情亚洲 | 国产系列在线观看 | 亚洲丁香 | 99re伊人 | 午夜特片网 | 亚洲高清网站 | 草草影院一区二区三区 | 18禁网站免费无遮挡无码中文 | 极品色av影院 | 国产xx视频 | 午夜精品久久久久久99热 | 99热一区二区三区 | 日韩中文字幕av在线 | 插我一区二区在线观看 | 涩涩视频免费观看 | www男人的天堂 | 免费观看在线观看 | 亚洲图片综合区 | 三级黄色免费片 | av网站在线观看免费 | 日本特黄一级 | 麻豆视频免费观看 | 96国产视频 | 亚洲黄色av网站 | 久久色av | 韩国精品在线观看 | 成年人的视频网站 | 亚洲一区三区 | 邻家有女4完整版电影观看 欧美偷拍另类 | 男女裸体无遮挡做爰 | 玩弄丰满少妇xxxxx性多毛 | 美日韩久久 | 涩涩视频在线免费看 | 久久99精品久久久久婷婷 | 美女视频黄的免费 | 欧美伦理影院 | 中国老头性行为xxxx | 午夜精品久久久久久久96蜜桃 | 99久久久久无码国产精品 | 日本中文字幕久久 | 日本一区二区网站 | 免费看裸体视频网站 | 国产又爽又黄无码无遮挡在线观看 | 亚洲一区二区三区在线播放 | av中文字幕观看 | 亚洲欧美中文日韩在线观看 | 国产精品三区在线观看 | 午夜精品国产精品大乳美女 | 国产精品高清无码在线观看 | 在线观看免费视频国产 | 成人夜晚视频 | 黄色一级免费视频 | 欧美三级手机在线观看 | 99欧美 | a级黄色影院 | 性猛交富婆╳xxx乱大交天津 | 国产东北女人做受av | 国产一级做a | 三级网站在线 | 日本一级黄色 | 亚洲综合免费 | 日韩电影网站 | 亚洲人成人 | 麻豆精品国产传媒av绿帽社 | 午夜福利三级理论电影 | 日韩一区二区三区电影 | 国产欧美一区二区三区国产幕精品 | 日本免费无人高清 | 国产一区二区三区视频免费在线观看 | 91精品国产色综合久久不卡电影 | 九九热在线免费视频 | 亚洲第一毛片 | 香蕉视频官网在线观看 | 亚洲天堂免费看 | 国产日本欧美在线 | 一区二区在线免费视频 | 国产综合视频在线观看 | av收藏小四郎最新地址 | 精品xxx | 亚洲黄色大全 | 懂色av一区二区在线播放 | 真实偷拍激情啪啪对白 | 97精品国产露脸对白 | 日本中出视频 | 亚洲精品乱码久久久久久日本蜜臀 | 日韩精品黄 | 国产骚b| 国产午夜在线视频 | 精品国产免费人成在线观看 |