[在Android中使用imageView设置相对布局背景图像

问题描述 投票:0回答:1

我有一个相对布局和一个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) ;
android android-studio imageview
1个回答
0
投票

ImageView构造函数需要一个Context参数。

如果此代码在您的活动中,请从片段中传递thisgetActivity(),或者将活动传递到适配器的构造函数中(如果它是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)(因为ActivityContext的类型),或者在其片段中将其更改为MyAdapter adapter = new MyAdapter(getContext())

如果不知道thisActivity的区别,请参见Fragment。>>

如果您不知道the inheritance hierarchy hereActivity之间的关系,请参见Context。>>

© www.soinside.com 2019 - 2024. All rights reserved.