Android Dialog和AlertDialog的一些常用的例子
来源:互联网 发布:python字符串连接数字 编辑:程序博客网 时间:2024/04/28 14:00
做项目的过程中经常会用到对话框提示,整理了一下把暂时用到的先总结下,以后会持续更新。
1、打电话
/** * 拨打电话提示框 * @param context * @param title 标题 * @param phoneNum 电话号码/手机号 */public static void showDialogCall(final Context context,String title,final String phoneNum) {AlertDialog.Builder builder = new AlertDialog.Builder(context);if(null!=title){ //如果不想要标题,可以传null过来builder.setTitle(title);}builder.setMessage("是否拨打 "+phoneNum);builder.setPositiveButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {} } );builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 使用系统的电话拨号服务,必须在AndroidManifest.xml中声明权限 //<uses-permission android:name="android.permission.CALL_PHONE" /> Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNum)); //ACTION_DIAL是跳转到拨号界面,ACTION_CALL是直接拨号 context.startActivity(intent); } } );builder.create().show();}2、单项选择
/** * 单项选择对话框 * @param context * @param title 对话框标题 * @param items 选项内容(String数组) * @param tv_item 显示当前选择内容的View(暂时用到TextView) */public void showChooseDialog(Context context,String title, final String[] items,final TextView tv_item) {int selectedNum = -1, i = 0;while (i < items.length) { // 初始化选中项if (items[i].equals(tv_item.getText().toString())) {selectedNum = i;break;}i++;}AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle(title);builder.setSingleChoiceItems(items, selectedNum,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {tv_item.setText(items[which]);dialog.dismiss();}});builder.create().show();}
/** * 单项选择对话框 * @param context * @param title 对话框标题 * @param items 选项内容(String数组) * @param tv_item 显示当前选择内容的View(暂时用到TextView) */ public void showChooseDialog(Context context,String title, ListAdapter adapter) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(title); builder.setSingleChoiceItems(adapter, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { selectPosition = which; ScheduleIconInfo info = mInfos.get(selectPosition); mSelectedIcon.setVisibility(View.VISIBLE); mSelectedIcon.setImageResource(info.getImageId()); onTitleChange(mTitleEditText.getText().toString().trim()); dialog.dismiss(); } }); builder.create().show(); }
3、loadingDialog
源码
自定义loadingDialog,网上资源很多,看了几篇博客,做了个自己喜欢的效果,直接粘主要代码。
(1)res / layout / dialog_loading.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dialog_loading_view" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/loading_bg" android:gravity="center" android:orientation="vertical" android:paddingBottom="10dp" android:paddingLeft="21dp" android:paddingRight="21dp" android:paddingTop="10dp" > <ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:indeterminateBehavior="repeat" android:indeterminateDrawable="@drawable/dialog_loading" android:indeterminateOnly="true" /> <TextView android:id="@+id/tipTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="加载中..." android:textColor="#f0f0f0" android:textSize="14sp" /> </LinearLayout></LinearLayout>(2)res / drawable / dialog_loading.xml
<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/dialog_loading_img" android:pivotX="50%" android:pivotY="50%" /><!-- 下面是转圈的 <?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/dialog_loading_img2" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" />-->(3)DialogUtil.java
/** * 得到自定义的progressDialog * @param context * @param msg 文字提示 * @return */public static Dialog createLoadingDialog(Context context, String msg) {LayoutInflater inflater = LayoutInflater.from(context);View v = inflater.inflate(R.layout.dialog_loading, null);// 得到加载viewLinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_loading_view);// 加载布局TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字tipTextView.setText(msg);// 设置加载信息Dialog loadingDialog = new Dialog(context, R.style.MyDialogStyle);// 创建自定义样式dialogloadingDialog.setCancelable(true); // 是否可以按“返回键”消失loadingDialog.setCanceledOnTouchOutside(true); //点击加载框以外的区域loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局loadingDialog.show();return loadingDialog;}(4)styles.xml
<!-- my loading dialog --> <style name="MyDialogStyle"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:backgroundDimEnabled">true</item> </style>(5)MainActivity.java
public class MainActivity extends Activity {private Button btn_loading = null; private Dialog dlg_loading = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initUI();initListeners();}private void initUI() {btn_loading = (Button) findViewById(R.id.main_btn_show_loading_dialog);}private void initListeners() {btn_loading.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {dlg_loading = DialogUtil.createLoadingDialog(MainActivity.this, "加载中...");}});}}
0 0
- Android Dialog和AlertDialog的一些常用的例子
- Android 例子: Dialog的使用--- AlertDialog功能演示一
- AlertDialog常用的一些样式
- Android弹出框PopupWindow,Dialog,AlertDialog.Builder,AlertDialog的一知半解
- 自定义AlertDialog和一般的Dialog
- Android常用控件——Dialog之AlertDialog和ProgressDialog
- Android之AlertDialog和Dialog
- android弹窗dialog和AlertDialog
- Android之AlertDialog和Dialog
- Android开发,源码分析Dialog/AlertDialog的dismiss()和hide()的区别
- Android的AlertDialog点击确认键dialog不消失
- spots-dialog:移动加载提示的自定义Android AlertDialog
- Material风格的Dialog(android.support.v7.app.AlertDialog)
- Material风格的Dialog(android.support.v7.app.AlertDialog)
- 基于AlertDialog和Dialog封装的多种弹出框样式
- Android Dialog 的一些特性
- Android 对话框 之AlertDialog和Dialog
- android 对话框Dialog和AlertDialog应用
- Android下获取设备唯一标识(UDID, DeviceID...)
- PHP相关整理
- 高级项目管理师
- 『算法学习笔记』23th-24th day. 数组
- eclipse如何把多个项目放在一个文件夹下
- Android Dialog和AlertDialog的一些常用的例子
- 找工作的思考
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- jquery学习之tab切换及动画效果,涉及animate(),siblings()
- win7设置不可更改桌面背景
- DES加密算法JAVA实现
- java 网页解析工具包 Jsoup
- 敏捷落地之旅
- 重温数据结构-排序算法