我无法在任何地方找到解决方案,我对编程仍然很陌生,所以这可能是一个简单的问题。
在我的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;
感谢您的帮助!
答案 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);