android DialogFragment简单应用

一个简单的DialogFragment应用
因为Activity的showDialog(int id)被弃用了,要使用DatePickerDialog,TimePickerDialog,AlterDialog都要继承DialogFragment.

布局文件就一个Button,就不写出来了.

MainActivity.java

package sky.dialog;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button bt = (Button) findViewById(R.id.showDialog);
        bt.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showDialog();
			}
		});
    }
    public void showDialog()
    {
    	//根据传进的参数来实例化DialogFragment.
    	MyDialogFragment newDialog = MyDialogFragment.newInstance(MyDialogFragment.ALTER_DIALOG);
//    	MyDialogFragment newDialog = MyDialogFragment.newInstance(MyDialogFragment.DATE_PICKER_DIALOG);
//    	MyDialogFragment newDialog = MyDialogFragment.newInstance(MyDialogFragment.TIME_PICKER_DiALOG);
    	newDialog.show(getFragmentManager(), "alert msg");
    }
}

MyDialogFragment.java

package sky.dialog;

import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TimePicker;

public class MyDialogFragment extends DialogFragment {
	public static final int DATE_PICKER_DIALOG = 1;
	public static final int ALTER_DIALOG = 2;
	public static final int TIME_PICKER_DiALOG = 3;

	public static MyDialogFragment newInstance(int title) {
		MyDialogFragment myDialogFragment = new MyDialogFragment();
		Bundle bundle = new Bundle();
		bundle.putInt("title", title);
		myDialogFragment.setArguments(bundle);
		return myDialogFragment;
	}

	@Override
	public Dialog onCreateDialog(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		int args = getArguments().getInt("title");
		//根据传进来的参数选择创建哪种Dialog
		switch (args) {
		case DATE_PICKER_DIALOG:
			return new DatePickerDialog(getActivity(), new OnDateSetListener() {
				public void onDateSet(DatePicker view, int year, int monthOfYear,
						int dayOfMonth) {
					// TODO Auto-generated method stub
					//月是从0开始的
					System.out.println( "year-->" + year + "  month-->" + monthOfYear
							+ "  day-->" + dayOfMonth);
				}
			}, 2012,3, 26);
		case ALTER_DIALOG:
			return new AlertDialog.Builder(getActivity())
				.setIcon(R.drawable.ic_launcher)
				.setTitle(getTag())
				.setPositiveButton("ok",
						new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int whichButton) {
					//点击ok触发的事件
					System.out.println("click ok!");
				}
				})
			.setNegativeButton("cancle",
					new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int whichButton) {
					//点击cancle触发的时间
					System.out.println("click cancle");
				}
				})
				.create();
		case TIME_PICKER_DiALOG:
			return new TimePickerDialog(getActivity(),new OnTimeSetListener() {

				public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
					// TODO Auto-generated method stub
					System.out.println("hour-->"+hourOfDay+"  minute-->"+ minute);
				}
			}, 13, 23, true);
		}
		return null;
	}

}

工程下载

时间: 2024-11-02 05:39:13

android DialogFragment简单应用的相关文章

图片-android一个简单动画的制作问题

问题描述 android一个简单动画的制作问题 我有一个Button,本来是这个样子,我想当按下的时候这三个样子轮流变化: 当再按下的时候变回原来的,也就是第一张的样子 怎么实现? 解决方案 制作一个简单的动画 解决方案二: j亲爱的发噶盛大而搁浅

Android Studio简单设置(转)

Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings --> Appearance --> Theme ,选择 Darcula 主题即可. 字体设置 系统字体设置 如果你的Android Studio界面中,中文显示有问题,或者选择中文目录显示有问题,或者想修改菜单栏的字体,可以这么设置.Settings --> Appearance ,勾选 Override default fonts by (

小米-Android 一个简单的post请求遇到的问题

问题描述 Android 一个简单的post请求遇到的问题 用volley的post请求,在其它手机上测试 线上path+轮播图url 返回正常的json数据,用小米4手机 返回一个404错误的html 如图: 经测试 在小米4手机上 线上path+其他url 获取的是正常json 线下测试path+轮播图url也能获取正常json 但是线上path+轮播图url就会返回该html 有没有大神知道什么原因?怎么解决?有人说是因为运营商,该手机用的移动卡,有关系吗? 解决方案 感觉可能跟移动卡有关

Android中简单的电话管理与短信管理App编写实例_Android

android电话管理器(TelephonyManger)实例:TelephonyManger是管理电话状态.网络信息的服务类. 添加权限: <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 逻辑功能:

Android中简单调用图片、视频、音频、录音和拍照的方法_Android

本文实例讲述了Android中简单调用图片.视频.音频.录音和拍照的方法.分享给大家供大家参考,具体如下: //选择图片 requestCode 返回的标识 Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT); //"android.intent.action.GET_CONTENT" innerIntent.setType(contentType); //查看类型 String IMAGE_UNSPECIFIED =

Android一个简单数据库应用

问题描述 Android一个简单数据库应用 我做了一个简单的Android数据库应用,就是一个在edittext中输入文字,点击按钮就把输入的文字保存到数据库中,但是db=dbHelper.getWritableDatabase(); 总是报错 package com.example.shujukushiyan; import android.app.Activity; import android.content.ContentValues; import android.content.Co

android:TextView简单设置文本样式和超链接的方法_Android

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

Android编程简单实现ImageView点击时背景图修改的方法_Android

本文实例讲述了Android编程简单实现ImageView点击时背景图修改的方法.分享给大家供大家参考,具体如下: 在使用ImageView时,当被点击时,希望背景图修改一下,这样显示被点击效果明显一些.在这里,一个很简单的方法,最起码是个很清晰的方法.在res/drawable文件夹下创建一个xml文件.比如my.xml,内容如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:an

Android实现简单MD5加密的方法_Android

本文实例讲述了Android实现简单MD5加密的方法.分享给大家供大家参考,具体如下: 网上关于android下MD5加密的资料很多,但是测试了下总是跟网站的md5加密不一样, 后来才知道是编码方式不对,于是就自己写了一个. private static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; public stati