Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBar选项卡导航在选项卡之间切换可清除视图_Android_Tabs_Navigationbar - Fatal编程技术网

Android ActionBar选项卡导航在选项卡之间切换可清除视图

Android ActionBar选项卡导航在选项卡之间切换可清除视图,android,tabs,navigationbar,Android,Tabs,Navigationbar,我正在尝试使用教程将我的应用程序转换为TabNavigation布局。第一个和最后一个选项卡布局总是相同的,只是每个应用程序中的第二个选项卡布局不同。所以我想从第二个选项卡管理其他选项卡,例如,在第一个选项卡中是imageView,在第二个选项卡中,我可以从firstTab.imageView.setImageResources/somePic显示一些图片。它工作正常,但我注意到应用程序从tab1启动并显示图片,然后我切换到tab2并返回到tab1,它仍然在那里,但当我转到tab3->tab1或

我正在尝试使用教程将我的应用程序转换为TabNavigation布局。第一个和最后一个选项卡布局总是相同的,只是每个应用程序中的第二个选项卡布局不同。所以我想从第二个选项卡管理其他选项卡,例如,在第一个选项卡中是imageView,在第二个选项卡中,我可以从firstTab.imageView.setImageResources/somePic显示一些图片。它工作正常,但我注意到应用程序从tab1启动并显示图片,然后我切换到tab2并返回到tab1,它仍然在那里,但当我转到tab3->tab1或tab3->tab2->tab1时,图片消失了,所以我必须转到tab2->tab1 再次设置图片。为什么会发生这种情况以及如何避免?我是安卓系统的乞丐,非常感谢你的帮助

选项卡活动:

public class TabActivity extends FragmentActivity {
ViewPager Tab;
TabPagerAdapter TabAdapter;
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TabAdapter = new TabPagerAdapter(getSupportFragmentManager());
    Tab = (ViewPager) findViewById(R.id.pager);
    Tab.setOnPageChangeListener(
            new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    actionBar = getActionBar();
                    actionBar.setSelectedNavigationItem(position);
                }
            });
    Tab.setAdapter(TabAdapter);
    actionBar = getActionBar();
    //Enable Tabs on Action Bar
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        @Override
        public void onTabReselected(android.app.ActionBar.Tab tab,                                        FragmentTransaction ft) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            Tab.setCurrentItem(tab.getPosition());
        }
        @Override
        public void onTabUnselected(android.app.ActionBar.Tab tab,
                                    FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }
    };
    //Add New Tab
    actionBar.addTab(actionBar.newTab().setText("Podgląd").setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Dane").setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Rozwiązanie").setTabListener(tabListener));
}
}

TabPagerAdapter:

public class TabPagerAdapter extends FragmentStatePagerAdapter {
public TabPagerAdapter(FragmentManager fm) {
    super(fm);
    // TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int i) {
    switch (i) {
    case 0:
        //Fragement for Android Tab
        return new Review();
    case 1:
       //Fragment for Ios Tab
        return new Data();
    case 2:
        //Fragment for Windows Tab
        return new Solution();
    }
    return null;
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return 3; //No of Tabs
}
}
数据类第二选项卡

public class Data extends Fragment {
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View ios = inflater.inflate(R.layout.ios_frag, container, false);
        ((TextView)ios.findViewById(R.id.textView)).setText("iOS");
        Review.imageView.setImageResource(R.drawable.ic_launcher);
        return ios;
}}

回顾类第一选项卡

public class Review extends Fragment {
public static ImageView imageView;
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View android = inflater.inflate(R.layout.android_frag, container, false);
        //((TextView)android.findViewById(R.id.textView)).setText("Android");
        imageView = (ImageView)android.findViewById(R.id.imageView);
        return android;
} }

解决方案类第三个选项卡

public class Solution extends Fragment {
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View windows = inflater.inflate(R.layout.windows_frag, container, false);
        ((TextView)windows.findViewById(R.id.textView)).setText("Windows");
        return windows;
}}


我现在已经阅读了关于使用捆绑包发送数据的内容,因为它保存了应用程序状态,但不起作用,我认为这是因为选项卡类不扩展活动,我错了吗?

请发布您的代码