Почему выдает Target must not be null?
Поменял в макете ReletiveLayout на com.makeramen.roundedimageview.RoundedImageView.После этого пошел в адаптер для RecyclerView что бы в UserViewHolder подключить другой id, так как раньше я подключал ImageView а теперь com.makeramen.roundedimageview.RoundedImageView и теперь мне выдает Target must not be null.До того как менял это все,у меня все работало и картинки выводило. Я еще не сильно разобрался с roundedimageview.Могу предположить что это связано с тем что я вв первом случае передавал юрл картинки с БД ImageView а сейчас передаю лейауту com.makeramen.roundedimageview.RoundedImageView. Я запутался уже, подскажите почему у меня появилась эта ошибка
layout_user (это item RecyclerView)
<com.makeramen.roundedimageview.RoundedImageView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/RoundedLayoutUsers"
android:adjustViewBounds="true"
app:riv_corner_radius="12dp"
>
<ImageView
android:id="@+id/userImageLine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/profile"
android:scaleType="centerCrop"
android:layout_gravity="fill"
/>
</com.makeramen.roundedimageview.RoundedImageView>
Вот UserAdapter
public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserViewHolder> {
private List<UserModel> list;
private Context mContext;
private DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
private String currentUserID = FirebaseAuth.getInstance().getCurrentUser().getUid();
public UserAdapter(List<UserModel> list) {
this.list = list;
}
@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new UserViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_user,parent,false));
}
@Override
public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
UserModel user = list.get(position);
// holder.loginName.setText(user.login);
Picasso.get().load(user.urlImage).into(holder.userImage);
}
@Override
public int getItemCount() {
return list.size();
}
class UserViewHolder extends RecyclerView.ViewHolder{
RoundedImageView userImage;
TextView loginName;
RatingBar ratingBar;
public UserViewHolder(@NonNull View itemView) {
super(itemView);
userImage = itemView.findViewById(R.id.RoundedLayoutUsers);
// loginName = itemView.findViewById(R.id.loginUser);
// ratingBar = itemView.findViewById(R.id.ratingBarUser);
}
}
}
И вот UserModel
public class UserModel {
public String login; public String urlImage;
public UserModel(Context context, String login, String urlImage) {
this.login = login;
this.urlImage = urlImage;
}
public UserModel (){
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getUrlImage() {
return urlImage;
}
public void setUrlImage(String urlImage) {
this.urlImage = urlImage;
}
}
Ответы (1 шт):
Есть 2 пути.
com.makeramen.roundedimageview.RoundedImageViewи так уже наследник ImageView. Судя по всему, вам не нужно в него добавлять ещё один ImageView.Использовать
Glide(https://github.com/bumptech/glide) вместо Picasso + RoundedImageView. В нём круглую картинку можно так отобразить в обычном ImageView:Glide.with(context) .load(url) .circleCrop() .into(imageView);