我在这里看了很多问题,我什至不知道我在找什么。
我有一个使用 ViewPager 的简单应用程序。它有 3 个选项卡,每个选项卡都有一个片段。第一个片段包含一个 ListView。我希望能够单击 ListView 中的一个元素并将其带到另一个片段。
所以基本上我想在单击一个元素后删除包含 ListView 的片段并添加一个新片段。我试图以几种不同的方式做到这一点,但没有任何工作。
我尝试的最后一件事是在单击元素后编辑 TabsPageAdapter,这几乎可以正常工作,除非我按下后退按钮退出应用程序。此外,这似乎不是最干净的方法。
TabsPagerAdapter
public class TabsPagerAdapter extends FragmentStatePagerAdapter {
SherlockFragment mf;
TalkingPointsFragment tpf;
ContactFragment gf;
int mode = 0;
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
mf = new CanvassFragment();
tpf = new TalkingPointsFragment();
gf = new ContactFragment();
}
public TabsPagerAdapter(FragmentManager fm, int mode)
{
super(fm);
if(mode == 0)
{
mf = new CanvassFragment();
tpf = new TalkingPointsFragment();
gf = new ContactFragment();
}
else if(mode == 1)
{
mf = new ContactFragment();
tpf = new TalkingPointsFragment();
gf = new ContactFragment();
}
}
@Override
public SherlockFragment getItem(int index) {
switch (index) {
case 0:
return mf;
case 1:
return tpf;
case 2:
return gf;
}
return null;
}
@Override
public int getCount() {
// get item count - equal to number of tabs
return 3;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
}
}
点击代码:
ViewPager viewp = (ViewPager) getActivity().findViewById(R.id.pager);
TabsPagerAdapter mAdapter = new TabsPagerAdapter(getActivity().getSupportFragmentManager(),1);
viewp.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
layout_main.xml
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:actionBarTabStyle="@drawable/actionbar_tab_indicator">