FragMent-通过Arguments方法 跟activity通信
2024-08-28 21:37:42
今天主要学习下通过Arguments,实现activity 给fragment传递数据。这个方法也是通过参数bundle来进行数据传输的
直接看如下代码
一,定义一个fragment,在oncreateView 中实现布局
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.detail_dialog, container, false);
if (mView != null) {
mTitleView = (TextView) mView.findViewById(R.id.title);
mTimeView = (TextView) mView.findViewById(R.id.time);
mDurationView = (TextView) mView.findViewById(R.id.duration);
mPathView = (TextView) mView.findViewById(R.id.path);
mFileSizeView = (TextView) mView.findViewById(R.id.filesize);
//通过getArguments获得bundle数据
mTitleView.setText(getArguments().getString("mTitle",""));
android.util.Log.e("zhangshuli", "+++++++"+getArguments().getString("mTitle",""));
mPathView.setText(getArguments().getString("mData",""));
mDurationView.setText(getArguments().getString("mDuration",""));
// +MtkUtils.stringForTime(mHolder.mDuration));
mTimeView.setText(getArguments().getString("mDateTaken",""));
//+MtkUtils.localTime(mHolder.mDateTaken));
mFileSizeView.setText(getArguments().getString("mFileSize",""));
//+Formatter.formatFileSize(mContext, mHolder.mFileSize));
// setButton(BTN_OK, mContext.getString(android.R.string.ok), this);
} else {
return super.onCreateView(inflater, container, savedInstanceState);
}
activity 中实现引用
private void showDetail(final ViewHolder mHolder) {
String mTitle =""+mHolder.mTitle;
String mData=""+mHolder.mData;
String mDuration =""+MtkUtils.stringForTime(mHolder.mDuration);
String mDateTaken =""+MtkUtils.localTime(mHolder.mDateTaken);
String mFileSize =""+Formatter.formatFileSize(this, mHolder.mFileSize);
mFragment=new DetailFragment();
mBundle =new Bundle();
fmFragmentManager=getFragmentManager();
mBundle.putString("mTitle", mTitle);
mBundle.putString("mData", mData);
mBundle.putString("mDuration", mDuration);
mBundle.putString("mDateTaken", mDateTaken);
mBundle.putString("mFileSize", mFileSize);
android.util.Log.e("zhangshuli", "======"+mFileSize);
//通过setArguments给fragment传递数据
mFragment.setArguments(mBundle);
fmFragmentManager.beginTransaction().replace(R.id.main,mFragment).commit();
}
最新文章
- STL中vector小结
- 2014 Super Training #4 E Paint the Grid Reloaded --联通块缩点+BFS
- ajxa分页+多条件查询
- mvc web api 保存多个实体类的方法
- Android虚拟机器学习总结Dalvik虚拟机创建进程和线程分析
- Android调用本机应用市场,实现应用评分功能
- centos 软件库安装
- 【Scala-ML】使用Scala构建机器学习工作流
- nginx设置目录浏览及解决中文乱码问题
- Linux根据MAC地址自动设置IP
- 【HDOJ3861】【Tarjan缩点+最小路径覆盖】
- Apache-通过CGI执行脚本
- HTML5学习笔记(十四):变量作用域
- redis 的 HyperLogLog
- python 元组元素计数
- 使用SoapUI测试windows身份验证的webservice
- 【洛谷 P2147】 [SDOI2008]洞穴勘测(LCT)
- VS和IE或者360兼容模式简单调试js方法
- 入门系列之在Nginx配置Gzip
- UVA.540 Team Queue (队列)