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()メソッドでのみエラーが発生しました。この問題を解決するいくつかの解決策を提案します。グライドファイルをインポートしましたが、解決されません。プロジェクトの作成中にエラーが発生しました。メソッドプレースホルダー()を解決できません。
グライドのバージョンは何ですか? –
#Shivamまだ同じ問題に直面していますか? –
@IntelliJAmiya yes –