Fragment里面创建DialogFragment
2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址:https://cloud.tencent.com/act/cps/redirect?redirect=1062
2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址:https://www.aliyun.com/minisite/goods
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1、 概述 DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在A
AUF法则下的对话框
【楔子】
在Actiity页面上做DiaLog似乎非常简单,大部分在学习了控件以后都会使用,但是google希望开发者只使用FragementDialog,刚开始不理解,后来发现碎片对话框真的太好用了,完全就是自我定制,其实就是设计一个xml布局,然后将它显示为对话框,这种自由形的对话框自然要比Activity本身的要好上很多。
【DialogFragment基础知识】想要做碎片的对话框,需要了解DialogFragment类,这个类继承自Fragment,所以行为相似。 【实现效果】:在一个fragment里面点击岛计时,跳出对话框
【第一步建立DialogFragment】 首先如同Fragment一样建立dialog.xml文件 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="110dp"
android:textSize="30dp"
android:text="时" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:textSize="30dp"
android:text="分" />
</LinearLayout>
<TimePicker
android:id="@+id/mytime"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/timesure"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:background="#33A18F"
android:textColor="#FFFFFF"
android:layout_marginBottom="20dp"
android:text="确定" /></LinearLayout>
接下来就是DialogFragment类: package com.example.testdrawerlayoutleft;import android.app.Activity;import android.app.DialogFragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import
android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.Button;import android.widget.TimePicker;import android.widget.TimePicker.OnTimeChangedListener;import android.widget.Toast;public class TimeDialog extends DialogFragment{推荐:Android初学习 - DialogFragment 创建对话框
1、 概述 DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认
private TimePicker mytime=null;
private Button timesubmit;
public int hour;
public int minute;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().setTitle("倒计时");
View view=inflater.inflate(R.layout.dialog, container);
mytime=(TimePicker)view.findViewById(R.id.mytime);
timesubmit=(Button)view.findViewById(R.id.timesure);
timesubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
OnFragmentListener listener=(OnFragmentListener)getActivity();
listener.onFragmentListener(hour, minute);
getDialog().dismiss();
}
});
mytime.setIs24HourView(true);
mytime.setCurrentHour(13);
mytime.setCurrentMinute(14);
mytime.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute1) {
// TODO Auto-generated method stub
hour=hourOfDay;
minute=minute1;
Toast.makeText(getActivity(), hour+" "+minute, 100).show();
}
});
return view;
}}
关键代码: public class TimeDialog extends DialogFragment
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
【点击事件中的Fragment处理】: 监听radiobutton事件: countdown.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
main.showDialog("dialog");
}
});
其中main就是主Activity,获取方式如下:
Main main = (Main) getActivity();
管理对话框显示方式还是写在主Activity里面: public void showDialog(String tag){
TimeDialog dialog=new TimeDialog();
dialog.show(getFragmentManager(), tag);
}
这里就全部完成了,是不是比较简单? 碎片对话框显示方式有两种 1.public int show(FragmentTransaction transaction ,String tag) 2.public int show(Fragment manager, String tag) 区别是第一个进入事务中,同时进入返回栈 第二个只是获得一个事务进行显示。
碎片对话框的好处是:即使设备发生旋转,碎片管理器会执行基本的状态管理,我们不需要做任何的状态管理,对话框就会重建。
推荐:Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1、 概述DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Ac
相关阅读排行
- 1Android Https相关完全解析 当OkHttp遇到Https
- 2Android APK反编译详解(附图)
- 3[置顶] Android APK反编译就这么简单 详解(附图)
- 4Android Fragment 真正的完全解析(上)
- 5Android RecyclerView 使用完全解析 体验艺术般的控件