我目前有一个名为Activity
的Android MainActivity
,它通过以下代码托管2个Fragments
(片段A和片段B)。我正在使用TabLayout
在Fragment
中的Fragment
A和MainActivity
B之间来回导航。除Fragment
方法外,每个listView
都包含一个onItemClick
。在listView
A和Fragment
B中同时点击Fragment
中的项目后,用户将被带到新的Activity
(分别为Activity_1和Activity_2。我需要覆盖返回button
中的Activity
,这样我就回到了Fragment
中的MainActivity
B。我很难理解在何处以及如何添加两个{{ 1}} A和Fragment
B到Fragment
,这样我就可以在Activity_1和Activity_2中击退backstack
,将我带回到导航的button
我在哪里以及如何在Fragment
中为片段A和片段B实现backstack
代码。
MainActivity.java
MainActivity
FragmentA.java
public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
}
private class CustomAdapter extends FragmentStatePagerAdapter{
private String fragments [] = {"Fragments 1", "Fragments 2"};
public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext){
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
switch(position){
case 0:
return new Fragment1();
case 1:
return new Fragment2();
default:
return null;
}
}
@Override
public int getCount() {
return fragments.length;
}
@Override
public CharSequence getPageTitle(int position) {
return fragments[position];
}
}
}
FragmentB.java
public class FragmentA extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragA, container, false);
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
. . .
}
}
答案 0 :(得分:0)
您可以使用startActivityForResult()开始新的活动,并根据正在进行的活动返回一个常量,并在MainActivity中处理响应并显示所需的片段。
答案 1 :(得分:0)
只要您的MainActivity知道(或可以知道)哪个片段(A或B)处理过,请单击:
如果您使用FragmentStatePagerAdapter(或类似的产品)来提供标签,则更加简单。