如何从片段访问活动的图像视图?

时间:2017-05-20 17:51:48

标签: java android android-fragments android-imageview android-toolbar

我有一个带有工具栏的活动,在该工具栏中我添加了一个图像视图并在其中设置了徽标。

此外,我创建了不同的片段,现在当我看到片段时,我想隐藏该图像视图并将标题设置为活动的工具栏。

我已将图片视图和工具栏设置为家庭活动中的公共静态。

我试图像这样访问工具栏:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        View view = inflater.inflate(R.layout.fragment_account, container, false);

        final Toolbar toolbar = (Toolbar) ((HomeActivity) getActivity()).findViewById(R.id.toolbar);
        toolbar.setTitle(R.string.menu_account);
        ((HomeActivity) getActivity()).setSupportActionBar(toolbar);

       ((HomeActivity) getActivity()).mLogo.setVisibility(View.GONE);


        return view;
    }

但是我在图像视图上得到一个空指针,如果注释了setVisibility(View.GONE),我可以看到工具栏上的图像。

HomeActivity

public class HomeActivity extends AppCompatActivity{

    public static Toolbar toolbar;
    public static ImageView mLogo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        mLogo = (ImageView)findViewById(R.id.imageViewLogo);

        FragmentManager fragmentManager = HomeActivity.this.getFragmentManager();
        MainFragment fragment = new MainFragment();
        fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        fragmentManager.beginTransaction().replace(R.id.mycontainer, fragment).commitAllowingStateLoss();

    }

}

请帮助解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:6)

从像这样的活动中获取Imageview

ImageView mLogo = (ImageView)getActivity().findViewById(R.id.imageViewLogo);
mLogo.setVisibility(View.GONE);