Android 如何从一个片段中调用两个不同的片段
我有一个片段类 我有一个线性布局可点击 和一个可点击的按钮 所以我想知道,当我点击线性布局时,它应该从片段1开始 当我点击按钮时,它应该开始片段2Android 如何从一个片段中调用两个不同的片段,android,android-fragments,Android,Android Fragments,我有一个片段类 我有一个线性布局可点击 和一个可点击的按钮 所以我想知道,当我点击线性布局时,它应该从片段1开始 当我点击按钮时,它应该开始片段2 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragm
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
LinearLayout l = (LinearLayout) rootView.findViewById(R.id.line1);
l.setOnClickListener(this);
Button b = (Button) rootView.findViewById(R.id.map_button);
b.setOnClickListener(this);
return rootView;
}
@Override
public void onClick(View v) {
Fragment frag = new Fragment1();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.frame_container, frag);
ft.addToBackStack(null);
ft.commit();
Fragment frag = new Fragment2();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.frame_container, frag);
ft.addToBackStack(null);
ft.commit();
在按钮上添加onClickListener,并尝试在单击时显示片段
@Override
public void onClick(View v) {
Fragment fragment = new Fragment1();
FragmentTransaction fragmentTr = getFragmentManager().beginTransaction();
fragmentTr .setCustomAnimations(android.R.animator.fade_in,
android.R.animator.fade_out);
if (fragment.isHidden())
fragmentTr.show(fragment);
}
编辑:
您可以使用switch case语句获取单击的视图:
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.Button:
// show fragment x
case R.id.LinearLayout:
// show fragment y
}
}
当你说SetOnClickListener时,你的onClick方法必须知道点击了什么。这是指类的onClick方法。在你的代码中,用户点击什么并不重要,整个onClick方法都将被执行。为了指定要执行的正确代码块,您可以对FragmentTransaction使用Switch和case.。看看我的答案,如果fragment.ishiden fragmentr.showfragment;