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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android dialog 结构,Android 原生Dialog实现

發布時間:2024/1/23 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android dialog 结构,Android 原生Dialog实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 簡介

Dialog 是一個可以展示信息以及和用戶交互的小窗體.

1.1 Dialog 的組成部分

Title 標題部分 : 這部分是可選的,只有當內容區域被使用了才可以使用這里.(并不是強制的)

Content 內容區域 : 顯示信息的部分,可以使用自定義布局.

Action Buttons 交互按鈕 : 最多三個按鈕.(Positive,Negative, Neutral)

1.2 管理Dialog

使用DialogFragment來管理Dialog可以正確處理生命周期事件. 我們可以創建各種各樣的Dialog,當然可以自定義UI.

2 分類

對于系統的原生的Dialog主要有下面幾種 :

普通提示Dialog.

列表Dialog.

單選列表Dialog.

多選列表Dialog.

自定義ContentView Dialog.

自定義TitleView Dialog.

先看效果圖

效果圖

2.1 普通提示Dialog

實現代碼

/**

* 普通提示Dialog.

*/

public static class NormalTextDialogFragment extends DialogFragment {

/**

* 創建Dialog時調用

*/

@NonNull

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

Log.d(TAG, "onCreateDialog: ");

// 創建構造器

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

// 設置參數

builder.setMessage("普通提示Dialog信息")

.setPositiveButton("確定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Log.d(TAG, "onClick: 確定 " + Thread.currentThread().getId());

Toast.makeText(getActivity(), "點擊了確定", Toast.LENGTH_SHORT).show();

}

})

.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Log.d(TAG, "onClick: 取消 " + Thread.currentThread().getId());

Toast.makeText(getActivity(), "點擊了取消", Toast.LENGTH_SHORT).show();

}

});

// 創建對話框并返回.

return builder.create();

}

}

調用方式

// 創建類實例,調用 show() 方法就可以顯示了.

new NormalTextDialogFragment().show(getSupportFragmentManager(), "normal_text_dialog");

2.2 列表Dialog

/**

* 列表Dialog

*/

public static class ListDialogFragment extends DialogFragment {

@NonNull

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

return builder

.setTitle("顏色選擇")

.setItems(R.array.color_arrays, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 獲取列表

String[] colors = getResources().getStringArray(R.array.color_arrays);

// 顯示

Toast.makeText(getActivity(), "選擇了 " + colors[which], Toast.LENGTH_SHORT).show();

}

})

.create();

}

}

2.3 單選Dialog

/**

* 單選框Dialog

*/

public static class SingleChoiceDialogFragment extends DialogFragment {

@NonNull

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

return new AlertDialog.Builder(getActivity())

.setSingleChoiceItems(R.array.color_arrays, 0, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 獲取列表

String[] colors = getResources().getStringArray(R.array.color_arrays);

// 顯示

Toast.makeText(getActivity(), "選擇了 " + colors[which], Toast.LENGTH_SHORT).show();

}

})

.setPositiveButton("OK",null)

.setNegativeButton("Cancel", null)

.create();

}

}

2.4 多選Dialog

/**

* 多選項Dialog

*/

public static class MultiChoiceDialogFragment extends DialogFragment {

@NonNull

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

return new AlertDialog.Builder(getActivity())

.setMultiChoiceItems(R.array.color_arrays, null, new DialogInterface.OnMultiChoiceClickListener() {

@Override

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

// 獲取列表

String[] colors = getResources().getStringArray(R.array.color_arrays);

// 顯示

String txt = "點擊了: " + colors[which] + " == " + isChecked;

Toast.makeText(getActivity(), txt, Toast.LENGTH_SHORT).show();

}

})

.setPositiveButton("OK", null)

.setNegativeButton("Cancel", null)

.create();

}

}

2.5 自定義ContentView

/**

* 自定義Content

*/

public static class CustomContentDialogFragment extends DialogFragment {

@NonNull

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

return builder

.setView(R.layout.dialog_custom_content)

.setPositiveButton("OK" , null)

.setNegativeButton("Cancel", null)

.create();

}

}

2.6 自定義Title

/**

* 自定義標題Dialog

*/

public static class CustomTitleDialogFragment extends DialogFragment {

@NonNull

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

LayoutInflater li = getActivity().getLayoutInflater();

return builder

.setCustomTitle(li.inflate(R.layout.dialog_custom_title, null))

.setPositiveButton("OK" , null)

.setNegativeButton("Cancel", null)

.create();

}

}

總結

以上是生活随笔為你收集整理的android dialog 结构,Android 原生Dialog实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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