我想用編程方式設置image
,我應該將圖像傳入構造函數。我使用此代碼,但運行應用程序時顯示我強制關閉。
如何在Android中設置圖像
強制關閉錯誤:
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對象爲null,你必須檢查你如何設置它。 –
@SamiKuhmonen,請看我的更新帖子。我初始化imageview – user7121617
你可以添加onCreateView()代碼 –