java - 在 Recyclerview 中使用 picasso 时出现 IllegalArgumentException : Context must not be null.

标签 java android android-recyclerview

当我尝试使用 recylerview 和 picaso 加载图像时,出现此错误“IllegalArgumentException:上下文不得为空。”

*我尝试使用recylerview来显示一堆图像,我已经完成了,然后我尝试使用picaso来加载图像负载。 *我也尝试使用“this”关键字,但这不起作用。

主要 Activity 。

public class MainActivity extends AppCompatActivity {
//Dummydata or place holderdata.


final static int[] dummyImages={R.drawable.color_black,R.drawable.color_white,R.drawable.color_brown,R.drawable.color_dusty_yellow,R.drawable.color_mustard_yellow,R.drawable.color_red};
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);


    // use a linear layout manager
    mLayoutManager = new GridLayoutManager(getApplicationContext(),2);
    mRecyclerView.setLayoutManager(mLayoutManager);

    // specify an adapter (see also next example)
    mAdapter = new RecycleAdapter(dummyImages);
    mRecyclerView.setAdapter(mAdapter);


}

}

我的适配器

public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.ViewHolder> {

private String[] adumyDataSet;
private int[] adumyimage;
private Context context;


// Provide a direct reference to each of the views within a data item
// Used to cache the views within the item layout for fast access
public static class ViewHolder extends RecyclerView.ViewHolder {
    // Your holder should contain a member variable
    // for any view that will be set as you render a row
    public ImageView colorImageView;

    // We also create a constructor that accepts the entire item row.
    // and does the view lookups to find each subview
    public ViewHolder(View itemView) {
        // Stores the itemView in a public final member variable that can be used
        // to access the context from any ViewHolder instance.
        super(itemView);
        colorImageView = (ImageView) itemView.findViewById(R.id.colorsBitch);

    }
}

public RecycleAdapter (int[] dummyDataSet){

    adumyimage=dummyDataSet;

}

@Override
public RecycleAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view,parent,false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(RecycleAdapter.ViewHolder holder, int position) {

    Picasso.with(context).load(adumyimage[position]).into(holder.colorImageView);

}

@Override
public int getItemCount()
{
    return adumyimage.length;
}

}

最佳答案

使用这个: 将上下文作为构造函数发送到适配器

public RecycleAdapter (int[] dummyDataSet,Context context){
  this.context=context;
  adumyimage=dummyDataSet;

}

在您的 Activity 中

mAdapter = new RecycleAdapter(dummyImages,this);

关于java - 在 Recyclerview 中使用 picasso 时出现 IllegalArgumentException : Context must not be null.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645723/

相关文章:

java - 数组返回每一行上的每个项目,而不是每行一个项目

java - unregisterReceiver 由 : java. lang.IllegalArgumentException 引起

java - 循环调整 - 我需要重写这个 Java 程序片段

java - 使用 JXDatePicker 时 JLabel 背景扭曲

java - 第 n 个元素数组的控制台输出

android - 检测应用程序是否从华为应用市场安装

android - 方形按钮屏幕宽度和重量匹配

android - "Unable to start activity"onStop 之后?

android - RecyclerView : Inconsistency detected. 无效的项目位置

java - 当 recycleview 滚动父 Activity 按钮去禁用