从DialogFragment回传数据给CrimeFragment
来源:互联网 发布:外汇牌价走势图软件 编辑:程序博客网 时间:2024/06/13 00:18
传回数据给CrimeFragment
实现activity的数据回传,是通过ActivityManager负责跟踪管理父activity和子activity间的关系。
回传数据后子activity被销毁,但ActivityManager知道接收数据的是哪个activity
类比这个,可以将CrimeFragment作为DatePickerFragment回传数据的目标Fragment,即使CF与DPF被销毁和重建后,操作系统也会重新关联它们
FragmentManager manager=getFragmentManager(); DatePickerFragment dialog=DatePickerFragment.newInstance(mCrime.getDate()); dialog.setTargetFragment(CrimeFragment.this,REQUEST_DATE); dialog.show(manager,DIALOG_DATE);
public void setTargetFragment(Fragment fragment,int requestCode)
在DatePickerFragment中可以通过getTargetFragment()和getTargetRequestCode()来获取这两个参数
目标fragment和请求代码由FragmentManager负责跟踪管理
从子activity退回到父activity时,父activity接收到调用Activity.onActivityResult方法的指令,其FragmentManager会调用对应fragment的FragmentManager
这下不是从activity退回activity,是从fragment退回fragment,就没有上面哪个机制,所以采用在DatePickerFragment里自行调用CrimeFragment的onActivitsetult
private void sendResult(int resultCode,Date date){ if(getTargetFragment()==null) return; Intent intent=new Intent(); intent.putExtra(EXTRA_DATE,date); getTargetFragment().onActivityResult(getTargetRequestCode(),resultCode,intent); }
重写对话框positive按钮监听器的代码
并在这其中获取用户设定的日期值,并调用sendResult将值返回给CrimeFragment
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { int year=mDatePicker.getYear(); int month=mDatePicker.getMonth(); int day=mDatePicker.getDayOfMonth(); Date date=new GregorianCalendar(year,month,day).getTime(); sendResult(Activity.RESULT_OK,date); } })
实现Crime Fragment的onActivityResult
取出回传的数据
@Override public void onActivityResult(int requestCode,int resultCode,Intent intent){ if(resultCode!=Activity.RESULT_OK) return; if(requestCode==REQUEST_DATE){ Date date=(Date)intent.getSerializableExtra(DatePickerFragment.EXTRA_DATE); mCrime.setDate(date); updateDate(); } }
- 从DialogFragment回传数据给CrimeFragment
- Android DialogFragment 回传数据
- 从CrimeListFragment带附加信息跳转到CrimeActivity,并把附加信息给CrimeFragment
- 给DialogFragment设置样式
- 从dataWindow给response页面传数据
- DialogFragment从底部弹出
- Android回调机制之Activity与DialogFragment数据传递
- 弹出框DialogFragment传值给Fragment,并且Fragment对应控件更新内容
- DialogFragment
- dialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- DialogFragment
- linux作业练习
- Java调用C++ DLL
- mysql优化-建立索引技巧
- 输入输出管理及文件权限的练习
- 蓝桥杯算法训练 P1103(复数运算)
- 从DialogFragment回传数据给CrimeFragment
- 16进制转8进制
- android Apk打包过程概述_android是如何打包apk的
- HDU 3938
- 爬格子呀5-5
- 并归排序算法
- JSTL – I18N - 国际化标签库。
- impdp导入数据无权限ORA-39213错误
- 图文讲解Zabbix 分布式监控平台添加服务监控项