'error: incompatible types: ImageActivity cannot be converted to Context
I'm getting this incompatible type error for my code. The error shows in ImageActivity class.
The error is in line: imageAdapter = new ImageAdapter(ImageActivity.this, uploads);
It says ImageActivity.this
can't convert to Context type and I'm not sure why.
I did some research and I found that I could use getActivity()
instead of ImageActivity.this
I tried it but it didn't work either.
I attached the code files below, please help, thank you.
ImageActivity code:
public class ImageActivity extends AppCompatActivity implements ImageAdapter.OnItemClickListner {
private RecyclerView recyclerView;
private ImageAdapter imageAdapter;
private DatabaseReference dataBaseRef;
private FirebaseStorage storage;
private ValueEventListener DBListener;
private List<Upload> uploads;
private ProgressBar progressCircle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_activity);
progressCircle.findViewById(R.id.progressbar_circle);
recyclerView.findViewById(R.id.recycler);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
uploads = new ArrayList<>();
imageAdapter = new ImageAdapter(ImageActivity.this, uploads);
recyclerView.setAdapter(imageAdapter);
imageAdapter.setOnItemClickListener(ImageActivity.this);
ImageAdapter code:
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {
private Context context;
private List<Upload> uploadList;
private OnItemClickListner listner;
public ImageAdapter(Context context, List<Upload> uploadList) {
this.context = context;
this.uploadList = uploadList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.images, parent, false );
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Upload uploadCurrent = uploadList.get(position);
Picasso.get().load(uploadCurrent.getImageUrl()).placeholder(R.mipmap.ic_launcher)
.fit().centerInside().into(holder.imageView);
}
@Override
public int getItemCount() {
return uploadList.size();
}
}
Solution 1:[1]
As I know you don't need to use getActivity()
or ImageActivity.this
, if you want to get the context of your activity use this
.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Mahdi Iranmanesh |