Android--创建对话框AlertDialog
学习Android过程中发现showDialog()、onCreateDialog()这些方法从Android4.0开始都过时了。
官方推荐使用DialogFragment类来创建对话框。
1)布局文件dialog_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Button
android:id="@+id/btn_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_dialog_text"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
2)Activity代码
package cn.luxh.dialognew; import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class DialogActivity extends Activity{ private static final String TAG = "DialogActivity"; private Button btn_Dialog; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_activity);
handleButtonClick();
} /**
* 处理按钮事件
*/
private void handleButtonClick() {
btn_Dialog = (Button) findViewById(R.id.btn_dialog);
btn_Dialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialogFragment alertDialogFragment = AlertDialogFragment.newInstance();
//显示对话框
alertDialogFragment.show(getFragmentManager(), "MyDialog");
}
});
} /**
* 确定按钮事件处理
*/
private void doPositiveClick() {
Log.d(TAG, "确定按钮事件处理");
Toast.makeText(this, "确定按钮被点击!", Toast.LENGTH_SHORT).show();
} /**
* 取消按钮事件处理
*/
private void doNegativeClick(){
Log.d(TAG, "取消按钮事件处理");
Toast.makeText(this, "取消按钮被点击!", Toast.LENGTH_SHORT).show();
} /**
* 生成对话框
*/
public static class AlertDialogFragment extends DialogFragment{ private static AlertDialogFragment alertDialogFragment = new AlertDialogFragment(); public static AlertDialogFragment newInstance() {
return alertDialogFragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_launcher)
.setTitle("我的对话窗口")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((DialogActivity)getActivity()).doPositiveClick();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((DialogActivity)getActivity()).doNegativeClick();
}
}).create();
}
}
}
3)运行效果

Android--创建对话框AlertDialog的更多相关文章
- 【转】【Android】对话框 AlertDialog -- 不错不错
原文网址:http://blog.csdn.net/feng88724/article/details/6171450 本讲介绍一下Android基本组件:对话框AlertDialog. API: j ...
- Android 警告对话框 AlertDialog
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...
- Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭
AlertDialog.Builder builder = new Builder(this); builder.create().show(); 这样显示出来的对话框,当用户按返回键或搜索键时,这个 ...
- Android自定义对话框
在android中有自带的对话框,为了美观,很多开发者会使用自定义对话框,如下图: 点击“弹出自定义对话框按钮后”显示如图效果. 首先要自己定义一个xml文件定义自己对话框的样式: <?xml ...
- Android学习笔记--AlertDialog应用
1. 自定义实现带图标的TextView IconTextView.java package com.evor.andtest; import android.content.Context; imp ...
- Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...
- [Android Pro] Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...
- 11.Android之常用对话框AlertDialog学习
(1)首先我们写个简单的AlertDialog对话框,要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法,然后创建对话框可以设置对话框的属性,比如 ...
- Android控件大全(一)——DialogFragment创建对话框
DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...
- Android中的对话框AlertDialog使用技巧合集-转载
Android中的对话框AlertDialog使用技巧合集 文章来自:http://blog.csdn.net/blue6626/article/details/6641105 今天我用自 ...
随机推荐
- Linux入侵检测工具 - RKHunter
RKHunter是Linux系统平台下的一款开源入侵检测工具 特点 (1)安装便捷,运行快速 (2)扫描范围全,能够检测各种已知的rootkit特征码.端口扫描.常用程序文件的变动情况检查 主要功能 ...
- Oracle 支持正则表达式的函数
内容提要 oracle 10g 增加的正则表达式函数有以下四种: regexp_like() --返回满足条件的字段 regexp_instr() --返回满足条件的字符或字符串的位置 regexp_ ...
- java单例模式和双例模式
今天朋友找我给做道题,双例模式,我是没听说过,都说是单例模式和多例模式, 也不知道双例模式什么时候用,就简单写了一个案例,不知道对不对,个人感觉蛮对的,双例就是单例+单例,废话不说了!!!! /* * ...
- 【linux】 linux 查看系统信息
1.输入"uname -a ",可显示电脑以及操作系统的相关信息. 2.输入"cat /proc/version",说明正在运行的内核版本. 3.输入" ...
- 【java】 java 集合类UML图
- 利用Boost影响Lucene查询结果的排序
转自:http://catastiger.iteye.com/blog/803796 前提:不对结果做sort操作. 在搜索中,并不是所有的Document和Fields都是平等的.有些技术会要 ...
- android学习笔记11——ScrollView
ScrollView——滚动条 用于内容显示不全,可提供滚动条下来形式,显示其余内容. ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 特点如下: 1.只能有 ...
- CentOS7安装Oracle 11g R2 详细过程——零基础
本人linux小白,因项目原因必须要在linux下使用oracle便开始了探索.安装过程中遇到了种种问题与原因,今天整理一下方便后面的可以少走弯路. *注明: 安装过程注意当前错作的用户,执行./ru ...
- CF 274B Zero Tree 树形DP
A tree is a graph with n vertices and exactly n - 1 edges; this graph should meet the following cond ...
- YCbCr;YUV;RGB
1. 来源的差异 yuv色彩模 型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域. 应用:basic color model used in analogue color ...