2016-11-13 114 views
-1

我想用編程方式設置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) 

初始化imageViewsetImage在片段:

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,但我該如何解決它?

+0

您尚未顯示HomeFragment的實現。 fragmentImage對象爲null,你必須檢查你如何設置它。 –

+0

@SamiKuhmonen,請看我的更新帖子。我初始化imageview – user7121617

+0

你可以添加onCreateView()代碼 –

回答

0

這發生在我身上。爲了解決這個嘗試以下步驟

  1. 添加下面的依賴項目build.gradle

    dependencies { 
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
    } 
    
  2. 添加下面的依賴到App build.gradle文件

    apply plugin: 'com.neenbedankt.android-apt'

    dependencies { apt 'com.jakewharton:butterknife-compiler:8.4.0' }

+0

不工作我,我該如何解決它? – user7121617

相關問題