2017-07-31 17 views
1
package com.example.shivamgoyal.photografia; 

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.util.SparseBooleanArray; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.ImageView; 

import com.bumptech.glide.Glide; 
import com.bumptech.glide.request.RequestOptions; 

import java.util.ArrayList; 


public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.MyViewHolder> { 

    private ArrayList<String> mImagesList; 
    private Context mContext; 
    private SparseBooleanArray mSparseBooleanArray; 

    public ImageAdapter(Context context, ArrayList<String> imageList) { 
     mContext = context; 
     mSparseBooleanArray = new SparseBooleanArray(); 
     mImagesList = new ArrayList<String>(); 
     this.mImagesList = imageList; 

    } 

    public ArrayList<String> getCheckedItems() { 
     ArrayList<String> mTempArry = new ArrayList<String>(); 

     for(int i=0;i<mImagesList.size();i++) { 
      if(mSparseBooleanArray.get(i)) { 
       mTempArry.add(mImagesList.get(i)); 
      } 
     } 

     return mTempArry; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    CompoundButton.OnCheckedChangeListener mCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked); 
     } 
    }; 


    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

     View itemView = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.row_multiphoto_item, parent, false); 

     return new MyViewHolder(itemView); 
    } 


    public void onBindViewHolder(MyViewHolder holder, int position) { 

     String imageUrl = mImagesList.get(position); 

     Glide.with(mContext) 
       .load("file://"+imageUrl) 
       .apply(RequestOptions.centerCropTransform()) 
       .placeholder(R.drawable.ic_launcher) 
       .error(R.drawable.ic_launcher) 
       .into(holder.imageView); 

     holder.checkBox.setTag(position); 
     holder.checkBox.setChecked(mSparseBooleanArray.get(position)); 
     holder.checkBox.setOnCheckedChangeListener(mCheckedChangeListener); 
    } 


    public int getItemCount() { 
     return mImagesList.size(); 
    } 

    public class MyViewHolder extends RecyclerView.ViewHolder { 

     public CheckBox checkBox; 
     public ImageView imageView; 

     public MyViewHolder(View view) { 
      super(view); 

      checkBox = (CheckBox) view.findViewById(R.id.checkBox1); 
      imageView = (ImageView) view.findViewById(R.id.imageView1); 
     } 
    } 

} 

WindowsでAndroidスタジオ3.0 canary 6を使用しています。ビルドプロセスが実行中にエラーが発生した場合、glide 3.5.2を使用してplaceholder()メソッドを解決することはできませんが、引き続きこのエラーが発生します。 placeholder()メソッドでのみエラーが発生しました。この問題を解決するいくつかの解決策を提案します。グライドファイルをインポートしましたが、解決されません。プロジェクトの作成中にエラーが発生しました。メソッドプレースホルダー()を解決できません。

+0

グライドのバージョンは何ですか? –

+0

#Shivamまだ同じ問題に直面していますか? –

+0

@IntelliJAmiya yes –

答えて

0

GLIDEバージョンをアップグレードしてください。

Placeholderをメディアをロードする前に追加することができます。以下のバージョンを使用してください。 FYI

compile 'com.github.bumptech.glide:glide:3.7.0' 

。デフォルトでアクティブ(バージョン 3.6.1用)である標準placeholder

グライド船。

+1

バージョン3.6.1用の.jarファイルをダウンロードする必要があります。または、文章をgradleファイルに追加するだけです。 –

+0

@shivamgoyal 'gradle' –

+0

@shivamgoyalこれはまだ解決されていますか? –

関連する問題