在Android中的片段中设置图像时出现NullPointerException异常
我试图从片段中ImageView中的drawable设置图像。上面的代码在线上抛出NullPointerException
,在Android中的片段中设置图像时出现NullPointerException异常
imageView.setImageResource(R.drawable.featured_one);
public class FeaturedTwo extends Fragment {
ImageView imageView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.featured_one, container, false);
imageView = (ImageView) rootView.findViewById(R.id.featured_two_image);
imageView.setImageResource(R.drawable.featured_one);
return rootView;
}
}
请帮我找到一个解决方案。
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
at com.example.anandzoom.appytizertest.FeaturedTwo.onCreateView(FeaturedTwo.java:28)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2189)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
XML featured_one的,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/featured_one_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
</LinearLayout>
在片段用画面的内容,而不是getActivity()
编辑:并修补您的ImageView ID使用featured_one_image代替featured_one_image的。
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.featured_one, container, false);
imageView = (ImageView) rootView.findViewById(R.id.featured_one_image);
// set drawable image like it
imageView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.featured_one));
return rootView;
}
我仍然在imageView.setImageResource(R.drawable.featured_one); –
@Anand Kumar检查setImageDrawable()方法编辑 –
仍然抛出NullPointerException .... java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.ImageView.setImageDrawable(android.graphics.drawable.Drawable)'on一个空对象引用 –
你需要找到从rootView的ImageView的。
呼叫
imageView = (ImageView) rootView.findViewById(R.id.featured_one_image);
编辑:您rootView内的ImageView的是featured_one_image,不featured_two_image
我仍然获得在imageView.setImageResource(R.drawable.featured_one)相同的异常; –
@AnandKumar调用'imageView =(ImageView)rootView.findViewById(R.id.featured_one_image);' –
使用rootView.findViewById
,而不是getActivity因为你的布局片段内部没有活动里面。
你也有错误的id,进入你的xml被命名为“featured_one_image”,但你会得到“featured_two_image”。
所以更改代码 imageView = (ImageView) rootView.findViewById(R.id.featured_two_image);
与imageView = (ImageView) rootView.findViewById(R.id.featured_one_image);
嘿,你需要找到没有父活动片段中你的看法。
只需更换
imageView = (ImageView) getActivity().findViewById(R.id.featured_one_image);
与
imageView = (ImageView) rootView.findViewById(R.id.featured_two_image);
我仍然在imageView.setImageResource(R.drawable.featured_one); –
可以粘贴xml fie for featured_one –
更新后的答案,现在检查 –
,而不是这样的:
imageView = (ImageView) getActivity().findViewById(R.id.featured_two_image);
使用本:
imageView = (ImageView) rootView.findViewById(R.id.featured_two_image);
看到我的编辑使用setImageDrawable()喜欢 –