【发布时间】:2016-11-13 11:14:02
【问题描述】:
我想以编程方式设置image,我应该将图像传递给构造函数。我使用此代码,但在运行应用程序时显示强制关闭。
强制关闭错误:
FATAL EXCEPTION: main
Process: ir.mototel.mototel, PID: 12904
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
at com.sepandar.xengine.fragment.HomeFragment.newInstance(HomeFragment.java:60)
at com.sepandar.xengine.adapter.HomePagerAdapter.getItem(HomePagerAdapter.java:43)
at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:101)
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1038)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1186)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1120)
at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:544)
at com.sepandar.xengine.fragment.MainFragment$1.onResponse(MainFragment.java:174)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5349)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
在片段中初始化imageView和setImage:
public class HomeFragment extends BaseFragment {
private static final String TAG = "HomeFragment";
public int categoy;
@Bind(R.id.recyclerView)
RecyclerView recyclerView;
@Bind(R.id.testFragmentImageID)
ImageView fragmentImage;
private HomeAdapter homeAdapter;
private Gson gson;
private ArrayList<Content> slider = new ArrayList<>();
private ArrayList<TopChart> topCharts = new ArrayList<>();
public static HomeFragment newInstance(int position, ArrayList<TopChart> topChartsArray, int imageINT) {
Bundle bundle = new Bundle();
HomeFragment instance = new HomeFragment();
instance.categoy = position;
instance.topCharts.addAll(topChartsArray);
instance.fragmentImage.setImageResource(imageINT);
instance.setArguments(bundle);
return instance;
}
public static String getTAG() {
return TAG;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
gson = new Gson();
homeAdapter = new HomeAdapter(context, activity, categoy);
homeAdapter.setCategories(topCharts);
homeAdapter.updateItems();
super.onCreate(savedInstanceState);
}
我该如何解决这个问题?
我知道 nullPointerExaption 的这个错误,但我该如何解决呢?
【问题讨论】:
-
您还没有展示 HomeFragment 的实现。 fragmentImage 对象为空,你必须检查你是如何设置它的。
-
@SamiKuhmonen,请查看我的更新帖子。我初始化图像视图
-
能否添加onCreateView()代码
-
@subrahmanyamboyapati,请看我的更新帖
-
您好,您使用的是黄油刀 8.X 吗?
标签: android android-imageview android-drawable android-image