以不同的布局更改图像视图的图像源

时间:2017-04-07 14:35:50

标签: java android android-layout nullpointerexception

我无法在任何地方找到解决方案,我对编程仍然很陌生,所以这可能是一个简单的问题。

在我的MainActivity中,我采取了ViewPager的位置。根据这个位置,我想更改放置在将在服务中膨胀的布局中的ImageView的来源。但是通过我的代码,我不断获得NullPointerException。 我是否需要以不同的方式声明ImageView,因为它的布局与当前显示的布局不同?

 public void OnClick(View view) {


    pagenumber = viewPager.getCurrentItem();
    imageView = (ImageView) findViewById(R.id.filterview);

    switch (pagenumber){
        case 0: imageView.setImageResource(R.drawable.goghfilter);
            break;
        case 1: imageView.setImageResource(R.drawable.background3);
            break;

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

请记住,用布局填充的类只会在该布局中找到视图,尝试findById视图不在该布局中会导致错误。 要解决此问题,请定义自定义布局inflater,使用图像使布局膨胀,然后使用该视图膨胀并对其执行findById。

答案 1 :(得分:0)

尝试一下:

ImageView mImageView = (ImageView) MainActivity.this.getLayoutInflater().inflate(R.layout.layout,null).findViewById(R.id.imageView);
        mImageView.setImageResource(R.drawable.icon);

相关问题