之间有什么区别
Intent i = new Intent(getActivity(), HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, c.getId());
startActivity(i);
和:
HomeworkFragment newFragment = new HomeworkFragment();
Bundle args = new Bundle();
args.putInt(HomeworkFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
我正在使用片段来启动另一个片段。
但是,应该使用哪一个以及为什么?
此外,我需要将子Fragment(HomeworkFragment)中的数据传回到首先启动它的Fragment。哪种设置可以轻松传输数据(如身份证号码)?
答案 0 :(得分:2)
好的,看。
Intent i = new Intent(getActivity(), HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, c.getId());
startActivity(i);
这将启动一个全新的Activity
,它拥有自己的生命周期。在哪里:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
用Fragment
替换R.id.fragment_container
中的newFragment
。
但是,应该使用哪一个?为什么?
取决于您的需求。
此外,我需要从子Fragment传输数据 (HomeworkFragment)回到第一个发布它的Fragment 地点。哪种设置允许传输数据(如id号) 容易?
假设您有两个Fragment
,您可以使用接口将数据首先传输回活动,然后传输回第二个片段。
答案 1 :(得分:1)
一个人开始活动。
另一个实例化并将片段附加到fragment_container
,这是调用活动布局的一部分。