我正在创建一个应用,用户应该可以为会议添加人员。
该结构由在同一活动(list_people, person_detail, create_meeting
)中管理的几个片段组成。
我想将显示人员列表的片段重用为create_meeting
片段中的对话框。并通过单击人员项目将人员添加到会议中。
当list_people
片段嵌入视图中时,点击某个人物品会将list_people
片段替换为person_detail
片段。已经使用主活动的接口实现了此行为。
我正在寻找一种解决方案来改变点击监听器的行为,无论list_people
片段是显示为嵌入片段还是对话框。关于我如何做到这一点的任何想法?
非常感谢任何帮助。谢谢。
答案 0 :(得分:1)
好的,我找到了解决方案。它是使用构造函数(newInstance
)作为可以传递变量的片段。
public class ListPeopleFragment extends Fragment {
public static ListPeopleFragment newInstance(boolean nested){
ListPeopleFragment f = new ListPeopleFragment();
Bundle args = new Bundle();
args.putBoolean("nested", nested);
f.setArguments(args);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.fragment_list_people, container, false);
boolean nested = false;
Bundle arguments = getArguments();
if (arguments != null)
{
nested = getArguments().getBoolean("nested");
}
displayListViewPeople(view, nested);
return view;
}
}
displayListViewPeople
根据nested
的值设置点击监听器。
以这种方式实例化片段:
ListPeopleFragment nestedFrag = ListPeopleFragment.newInstance(true);