【问题标题】:How to set image in Android如何在Android中设置图像
【发布时间】: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)

在片段中初始化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 的这个错误,但我该如何解决呢?

【问题讨论】:

  • 您还没有展示 HomeFragment 的实现。 fragmentImage 对象为空,你必须检查你是如何设置它的。
  • @SamiKuhmonen,请查看我的更新帖子。我初始化图像视图
  • 能否添加onCreateView()代码
  • @subrahmanyamboyapati,请看我的更新帖
  • 您好,您使用的是黄油刀 8.X 吗?

标签: android android-imageview android-drawable android-image


【解决方案1】:

这发生在我身上。要解决此问题,请尝试以下步骤

  1. 在项目build.gradle中添加以下依赖

    dependencies {
          classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
    
  2. 将以下依赖项添加到应用程序build.gradle 文件

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

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

【讨论】:

    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    相关资源
    最近更新 更多