使用fragment argument
来源:互联网 发布:vb程序设计视频教程 编辑:程序博客网 时间:2024/06/07 05:48
从fragment中启动activity
@Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Crime crime = (Crime) getListAdapter().getItem(position); Intent intent = new Intent(getActivity(), CrimeActivity.class); //UUID是Serializable对象,我们调用了可接受Serializable对象的putExtra(...)方法,即putExtra(String, Serializable)方法。 intent.putExtra(CrimeFragment.EXTRA_CRIME_ID, crime.getId()); /** * 从fragment中启动activity,可以调用Fragment.startActivity(Intent)方法。 * * 除了将返回结果从托管activity传递给fragment的额外实现代码之外,Fragment.startActivityForResult(Intent, int)方法的实现代码与activity的同名方法基本相同。 */ startActivityForResult(intent, REQUEST_CRIME); }
fragment获取保存在activity的intent内的数据信息
/** * * fragment有两种方式获取保存在activity的intent内的数据信息 * 方式一:即直接在fragment中调用getActivity().getIntent()方法获取托管Activity的intent,然后为extra添加key,得到intent内的extra信息。 * 但该方法牺牲了fragment的封装性,fragment不再是可复用的构建单元,因为它总需要由某个具体activity托管着。 * 方式二:先创建Bundle对象,将activity的intent内的数据信息argument添加到bundle中,再调用Fragment.setArguments(Bundle)方法, * 因为每一个fragment实例都可附带一个Bundle对象。如下代码既是。 * * 注意:交互的activit和fragment不需要也无法同时保持通用独立性。托管activity就应该知道有关托管fragment方法的细节, * 但fragment则不必知道其托管activity的细节问题。 */ public static Fragment newInstance(UUID crimeId){ Bundle bundle = new Bundle(); bundle.putSerializable(EXTRA_CRIME_ID, crimeId); CrimeFragment fragment = new CrimeFragment(); fragment.setArguments(bundle); return fragment; }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //UUID crimeId = (UUID) getActivity().getIntent().getSerializableExtra(EXTRA_CRIME_ID); UUID crimeId = (UUID) getArguments().getSerializable(EXTRA_CRIME_ID); mCrime = CrimeLab.get(getActivity()).getCrime(crimeId); }
public class CrimeActivity extends SingleFragmentActivity { @Override protected Fragment createFragment() { UUID crimeId = (UUID) getIntent().getSerializableExtra(CrimeFragment.EXTRA_CRIME_ID); return CrimeFragment.newInstance(crimeId); }}
从fragment中返回结果
/** * fragment能够从activity中接收返回结果,但其自身无法产生返回结果。只有activity拥有返回结果。 * 因此,尽管Fragment有自己的startActivityForResult(Intent,int)和onActivityResult(...)方法, * 但却不具有任何setResult(...)方法。 */ getActivity().setResult(Activity.RESULT_OK, null);
代码地址
0 0
- 使用fragment argument
- Android Fragment的使用 七 Argument和startActivityForResult传递数据
- Android 复习6 fragment argument
- Android进阶知识点(ViewPager,Fragment argument )
- Android编程权威指南(第二版)学习笔记(十)—— 第10章 使用 fragment argument
- 通过fragment argument从Activity传递数据到Fragment
- argument
- Android Api Demos登顶之路(三十五)Fragment-->Argument
- 8. wrong 2nd argument type found 'android.app.Fragment.' required 'Android.support.v4.app.Fragment'
- Fragment 使用
- fragment 使用
- Fragment使用
- fragment使用
- Fragment使用
- Fragment使用
- fragment使用
- Fragment(二)使用Fragment
- performSelector:target:argument:order:modes:和cancelPerformSelector:target:argument:的使用
- 超简单Centos vpn 搭建方法 只需三部,快速搭建vpn
- 开发一个安全的小网站(三)加密关键数据
- 关于Android studio 相对 eclipse 优点
- spring事务PROPAGATION_REQUIRES_NEW和PROPAGATION_NESTED区别
- Android-图片选择,压缩,上传,加载的实例 (图片选择,压缩实现 )
- 使用fragment argument
- uva 534 - Frogger(最小生成树)
- Android UI之ScrollView
- POJ 1002 487-3279
- Android UI之DrawerLayout
- uva 538 - Balancing Bank Accounts(贪心)
- The type javax.http.HttpServletRequest cannot be resolved.It is indirectly
- hdu 2544 最短路(floyd)
- 《机器学习实战》学习笔记:决策树的实现