Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置一个bitmpa。自过去2天以来一直存在此问题:(_Android_Android Recyclerview_Filter_Crash - Fatal编程技术网

Android 我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置一个bitmpa。自过去2天以来一直存在此问题:(

Android 我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置一个bitmpa。自过去2天以来一直存在此问题:(,android,android-recyclerview,filter,crash,Android,Android Recyclerview,Filter,Crash,我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置位图 我的适配器类如下所示。我也在recyclerView的末尾设置了一个侦听器,以便它侦听更改 public class ThumbnailAdapter extends RecyclerView.Adapter<ThumbnailAdapter.ThumbnailHolder> { ArrayList<ThumbnailItem> thumbnailItemLis

我想在单击recyclerView的任何项目时,在recyclerView外部的imageView上设置位图

我的适配器类如下所示。我也在recyclerView的末尾设置了一个侦听器,以便它侦听更改

public class ThumbnailAdapter extends RecyclerView.Adapter<ThumbnailAdapter.ThumbnailHolder> {

ArrayList<ThumbnailItem> thumbnailItemList = new ArrayList<>();
Context mContext;
int selectedIndex = 0;
ThumbnailsAdapterListener listener;
Bitmap originalImage;
ImageView imageView;

public static class ThumbnailHolder extends RecyclerView.ViewHolder {

    ImageView thumbnail;
    TextView filterName;

    public ThumbnailHolder(View view) {
        super(view);
        thumbnail = view.findViewById(R.id.thumbnail);
        filterName = view.findViewById(R.id.filter_name);

    }
}


public ThumbnailAdapter(Context mContext, Bitmap originalImage, ImageView imageView, ArrayList<ThumbnailItem> thumbnailItemList, ThumbnailsAdapterListener listener) {
    this.originalImage = originalImage;
    this.imageView = imageView;
    this.thumbnailItemList = thumbnailItemList;
    this.mContext = mContext;
    this.listener = listener;
}


@NonNull
@Override
public ThumbnailHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(mContext).inflate(R.layout.thumbnail_list_items, parent, false);

    return new ThumbnailHolder(view);
}

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

    final ThumbnailItem thumbnailItem = thumbnailItemList.get(position);
    holder.thumbnail.setImageBitmap(thumbnailItem.image);


    holder.thumbnail.setOnClickListener(view -> {
        Log.i("POSITION", String.valueOf(position));

        listener.onFilterSelected(thumbnailItem.filter);
        selectedIndex = position;
        notifyDataSetChanged();
    });


    holder.filterName.setText(thumbnailItem.filterName);


    if (selectedIndex == position) {
        holder.filterName.setTextColor(ContextCompat.getColor(mContext, R.color.dot_blue));
    } else {
        holder.filterName.setTextColor(ContextCompat.getColor(mContext, R.color.grey));
    }

}

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


public interface ThumbnailsAdapterListener {
    public void onFilterSelected(Filter filter);
}

我无法理解,每当我选择一个图像并尝试调用listener时,应用程序都会崩溃。

你能发布MainActivity吗?它太长了我刚刚将一个侦听器声明为“ThumbnailAdapter.ThumbnailsAdapter listener;”我不知道如何初始化它并使用它在imageview上更改图像
@Override
public void onFilterSelected(Filter filter) {
    //resetControls();

    Bitmap bitmap = filter.processFilter(originalImage);
    Log.i("IWASHERE", filter.getName() + "Here");
    Thread thread = null;

    try {
        imageView.setImageBitmap(bitmap);
    } catch (Exception e) {
        e.printStackTrace();
    }
    //finalImage = filteredImage.copy(Bitmap.Config.ARGB_8888, true);
}