Android 更改ImageView取决于选项卡

Android 更改ImageView取决于选项卡,android,tabs,fragment,Android,Tabs,Fragment,我在一个活动中有2个选项卡片段。一个活动的中心有一个圆形图像视图。当我滑动第一个片段时,我需要显示第一个图像&与使用不同图像的第二个选项卡滑动相同 更新: static class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override

我在一个活动中有2个选项卡片段。一个活动的中心有一个圆形图像视图。当我滑动第一个片段时,我需要显示第一个图像&与使用不同图像的第二个选项卡滑动相同

更新:

 static class ViewPagerAdapter extends FragmentPagerAdapter {
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }
  @Override
    public Fragment getItem(int position) {
        Fragment fragment = null;
        Bundle bundle = new Bundle();
        bundle.putInt("position", position);
        switch (position) {
            case 0:
                imgProfile.setImageResource(R.drawable.login_logo);
                return new LogInFragment();

            case 1:
                imgProfile.setImageResource(R.drawable.add_image);
                return new SignUpFragment();
        }
        return null;
    }

    @Override
    public int getCount() {
        return 2;
    }

    @Override
    public CharSequence getPageTitle(int position) {

        switch (position) {
            case 0:

                return "LOGIN";
            case 1:

                return "SIGNUP";
        }
        return null;
    }
}

好了,现在我明白你想做什么了: 首先删除更改图像的所有代码,然后尝试以下操作:

static class ViewPagerAdapter extends FragmentPagerAdapter {
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment fragment = null;
            Bundle bundle = new Bundle();
            switch (position) {
                case 0:
                    yourImageView.setImageResource(R.id.yourResource1);
                    fragment = new LogInFragment();
                    break;
                case 1:
                    yourImageView.setImageResource(R.id.yourResource2);
                    fragment = new SignUpFragment();
                    break;
            }
            return fragment;
        }

        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            String str = "";
            switch (position) {
                case 0:
                    str = "LOGIN";
                    break;
                case 1:
                    str = "SIGNUP"; 
                    break;
            }
            return str;
        }
    }

这就是你所需要的

好了,现在我明白你想做什么了: 首先删除更改图像的所有代码,然后尝试以下操作:

static class ViewPagerAdapter extends FragmentPagerAdapter {
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment fragment = null;
            Bundle bundle = new Bundle();
            switch (position) {
                case 0:
                    yourImageView.setImageResource(R.id.yourResource1);
                    fragment = new LogInFragment();
                    break;
                case 1:
                    yourImageView.setImageResource(R.id.yourResource2);
                    fragment = new SignUpFragment();
                    break;
            }
            return fragment;
        }

        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            String str = "";
            switch (position) {
                case 0:
                    str = "LOGIN";
                    break;
                case 1:
                    str = "SIGNUP"; 
                    break;
            }
            return str;
        }
    }

这就是您所需要的全部

通过在@sasikumar answer中进行一些修改,最终使用以下代码获得了它

我没有在页面上放置onPageScrollStateChanged而是在onPageSelected

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }

    @Override
    public void onPageSelected(int position) {
        int i = 0;
        if (position == 0) {
            Log.e("Tab Position", String.valueOf(position));
            imgProfile.setImageResource(R.drawable.login_logo);
        } else if (position == 1) {
            Log.e("Tab Position", String.valueOf(position));
            imgProfile.setImageResource(R.drawable.add_image);
        }
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});

最后,通过在@sasikumar answer中进行一些修改,使用以下代码获得了它

我没有在页面上放置onPageScrollStateChanged而是在onPageSelected

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }

    @Override
    public void onPageSelected(int position) {
        int i = 0;
        if (position == 0) {
            Log.e("Tab Position", String.valueOf(position));
            imgProfile.setImageResource(R.drawable.login_logo);
        } else if (position == 1) {
            Log.e("Tab Position", String.valueOf(position));
            imgProfile.setImageResource(R.drawable.add_image);
        }
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});


我正在我的应用程序中使用ViewPager。是的……现在我使用的是您编辑的代码@FabioVentureiPastorViewPager.setOnPageChangeListener现在不推荐使用。需要改用ViewPager.addOnPageChangeListener。未获取@sasikumar。。。对于获得相同图像的两个片段,我在我的应用程序中使用了ViewPager。是的…现在我使用的是您编辑的代码@fabioventureipastorViewPager.setOnPageChangeListener现在不推荐使用。需要改用ViewPager.addOnPageChangeListener。未获取@sasikumar。。。对于获得相同图像的两个片段请检查我的答案,它是有效的;)检查我的答案,它有效;)抱歉..在空对象引用上获取“android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.MFFragmentManager”。请显示片段代码,否则,如果您有两个不同的片段,为什么不在创建时设置ImageResource?我在LogInactivity中有LogInFragment和SignUpFragment…图像在LogInactivity中。如何从我的fragment.LogInactivity.imgProfile.setImageResource(R.drawable.add_图像)设置该图像;甚至我已经试过了。现在我也跟着你了。但两个选项卡都只显示了白色圆圈。抱歉..在空对象引用上获取“android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.MFFragmentManager”。请显示片段代码,否则,如果您有两个不同的片段,为什么不在创建时设置ImageResource?我在LogInactivity中有LogInFragment和SignUpFragment…图像在LogInactivity中。如何从我的fragment.LogInactivity.imgProfile.setImageResource(R.drawable.add_图像)设置该图像;甚至我已经试过了。现在我也跟着你。但是两个标签上都只显示了白色的圆圈。