2017-11-14 14 views
-6

まず、私は初心者です。これはあなたにとって愚かな質問かもしれません。 私は、recyclerviewでイメージを読み込むために、次のコードにコンテキストを渡す必要があります。いくつかのオプションを試しましたが、いずれも成功していません。私の問題は、次のコードで渡すコンテキストを見つける方法です。ピカソ - 「文脈」を見つけることができません

Picasso.with(context here).load("http://i.imgur.com/DvpvklR.png").into(thumbnail); 

ここで(私はrecyclerviewに画像を渡すためにしようとしています)問題が発生する完全なコードがある

public class WishListAdapter extends RecyclerView.Adapter<WishListAdapter.DerpHolder> { 

    private List<WishListItem> listData; 
    private LayoutInflater inflater; 

    public WishListAdapter(List<WishListItem> listData, Context c) { 
     inflater = LayoutInflater.from(c); 
     this.listData = listData; 
    } 

    @Override 
    public WishListAdapter.DerpHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = inflater.inflate(R.layout.wish_list_item, parent, false); 
     return new DerpHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(DerpHolder holder, int position) { 

    } 

    public void setListData(ArrayList<WishListItem> exerciseList) { 
     this.listData.clear(); 
     this.listData.addAll(exerciseList); 
    } 

    @Override 
    public int getItemCount() { 
     return listData.size(); 
    } 

    class DerpHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

     ImageView thumbnail; 
     TextView title; 
     TextView subTitle; 
     View container; 


     public DerpHolder(View itemView) { 
      super(itemView); 
      thumbnail = itemView.findViewById(R.id.im_item_icon); 

      //subTitle = itemView.findViewById(R.id.lbl_item_sub_title); 

      //title = itemView.findViewById(R.id.lbl_item_text); 

      container = itemView.findViewById(R.id.cont_item_root); 
      container.setOnClickListener(this); 
      Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(thumbnail); 
     } 

     @Override 
     public void onClick(View v) { 
      Log.d("janitha", "item clicked"); 

     } 

はまた、私はあまりにも、次の読んでいる: - Picasso and context

助けを期待します誰かから、事前にありがとうございます。

答えて

0

コンストラクタからコンテキストを保存していません。

public class WishListAdapter extends 
    RecyclerView.Adapter<WishListAdapter.DerpHolder> { 

    private List<WishListItem> listData; 
    private LayoutInflater inflater; 
    Context context; 

    public WishListAdapter(List<WishListItem> listData, Context c) { 
     inflater = LayoutInflater.from(c); 
     this.listData = listData; 
     this.context = c; 
    } 

    @Override 
    public WishListAdapter.DerpHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = inflater.inflate(R.layout.wish_list_item, parent, false); 
     return new DerpHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(DerpHolder holder, int position) { 

    } 

    public void setListData(ArrayList<WishListItem> exerciseList) { 
     this.listData.clear(); 
     this.listData.addAll(exerciseList); 
    } 

    @Override 
    public int getItemCount() { 
     return listData.size(); 
    } 

    class DerpHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

     ImageView thumbnail; 
     TextView title; 
     TextView subTitle; 
     View container; 


     public DerpHolder(View itemView) { 
      super(itemView); 
      thumbnail = itemView.findViewById(R.id.im_item_icon); 

      //subTitle = itemView.findViewById(R.id.lbl_item_sub_title); 

      //title = itemView.findViewById(R.id.lbl_item_text); 

      container = itemView.findViewById(R.id.cont_item_root); 
      container.setOnClickListener(this); 
      Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(thumbnail); 
     } 

     @Override 
     public void onClick(View v) { 
      Log.d("janitha", "item clicked"); 

     } 
+0

本当に便利、 ありがとうございました –

1

てみてください、

private Context context; 

とあなたのコンストラクタで、

this.context = c; 

今あなたは、パラメータとして 'コンテキスト' を使用することができます。このようなど行います。

1

次のようにコードを変更します。

private List<WishListItem> listData; 
private LayoutInflater inflater; 
private Context mContext; 

public WishListAdapter(List<WishListItem> listData, Context c) { 
    inflater = LayoutInflater.from(c); 
    this.listData = listData; 
    this.mContext = c; 
} 

その後ピカソmContextを使用します。

Picasso.with(mContext).load("http://i.imgur.com/DvpvklR.png").into(thumbnail); 
0

以下のようにコンテキスト変数を宣言して、それを使用してください:

public class WishListAdapter extends RecyclerView.Adapter<WishListAdapter.DerpHolder> { 

    private List<WishListItem> listData; 
    private LayoutInflater inflater; 
    private Context context 

    public WishListAdapter(List<WishListItem> listData, Context c) { 
     inflater = LayoutInflater.from(c); 
     this.listData = listData; 
     this.context = c; 
    } 

    @Override 
    public WishListAdapter.DerpHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = inflater.inflate(R.layout.wish_list_item, parent, false); 
     return new DerpHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(DerpHolder holder, int position) { 

    } 

    public void setListData(ArrayList<WishListItem> exerciseList) { 
     this.listData.clear(); 
     this.listData.addAll(exerciseList); 
    } 

    @Override 
    public int getItemCount() { 
     return listData.size(); 
    } 

    class DerpHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

     ImageView thumbnail; 
     TextView title; 
     TextView subTitle; 
     View container; 


     public DerpHolder(View itemView) { 
      super(itemView); 
      thumbnail = itemView.findViewById(R.id.im_item_icon); 

      //subTitle = itemView.findViewById(R.id.lbl_item_sub_title); 

      //title = itemView.findViewById(R.id.lbl_item_text); 

      container = itemView.findViewById(R.id.cont_item_root); 
      container.setOnClickListener(this); 
      Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(thumbnail); 
     } 

     @Override 
     public void onClick(View v) { 
      Log.d("janitha", "item clicked"); 

     } 
関連する問題