我有一个相对布局和一个imageView我想通过imageView image ressource设置相对布局背景图像,这是代码:
ImageView iv = new ImageView(null) ;
Picasso.get().load("http://10.0.2.2:3000/uploads/"+imgtrip+".png").into(iv);
viewHolder.rltvLayout.setBackground(iv.getDrawable);
我遇到此错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
在此行:
ImageView iv = new ImageView(null) ;
ImageView
构造函数需要一个Context
参数。
如果此代码在您的活动中,请从片段中传递this
或getActivity()
,或者将活动传递到适配器的构造函数中(如果它是listview / recyclerview适配器并在视图持有者中使用它,等等。) >
在您的情况下,在您的适配器中,
class MyAdapter extends ListAdapter { private Context mContext; public MyAdapter(Context context) { mContext = context; } // ... // in where you use ImageView { ImageView iv = new ImageView(mContext); //... } }
[通常在您的活动或片段中,在您创建新
MyAdapter
的位置,您现在有了类似MyAdapter adapter = new MyAdapter()
的名称,但是如果它在您的活动中,则将其更改为MyAdapter adapter = new MyAdapter(this)
(因为Activity
是Context
的类型),或者在其片段中将其更改为MyAdapter adapter = new MyAdapter(getContext())
。
如果不知道this和Activity
的区别,请参见Fragment
。>>
如果您不知道the inheritance hierarchy here和Activity
之间的关系,请参见Context
。>>