У меня небольшая проблема, я пытаюсь отобразить список элементов, но он не работает, каждый элемент содержит изображение, поэтому вот моя активность:
public class TestRecyclerImagesActivity extends AppCompatActivity {
@BindView(R.id.listImages)
RecyclerView listImages;
RecyclerView.Adapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.images_list);
ButterKnife.bind(this);
ImageModel img = new ImageModel("test1");
List list = new ArrayList<ImageModel>();
list.add(img);
list.add(img);
list.add(img);
list.add(img);
adapter = new ImageListAdapter(this, list);
this.listImages.setAdapter(adapter);
this.listImages.setLayoutManager(new LinearLayoutManager(this));
}
}
А вот мой Адаптер:
public class ImageListAdapter extends RecyclerView.Adapter<ImageListAdapter.ImageViewHolder>{
List<ImageModel> images;
Context context;
public ImageListAdapter(Context context, List<ImageModel> contracts){
this.context = context;
this.images = contracts;
}
public void updateImages(List<ImageModel> newImages){
images.clear();
images.addAll(newImages);
notifyDataSetChanged();
}
@NonNull
@Override
public ImageListAdapter.ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.image, parent, false); // ContratBinding >> as your list item layout named "contrat"
return new ImageListAdapter.ImageViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ImageListAdapter.ImageViewHolder holder, int position) {
holder.bind(images.get(position));
}
@Override
public int getItemCount() {
return this.images.size();
}
public class ImageViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.img)
ImageView image;
public ImageViewHolder(View iview){
super(iview);
ButterKnife.bind(this, iview);
}
void bind(ImageModel imageModel){
image.setImageResource(R.drawable.newimage);
}
}
}
Это мой макет списка изображений:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/listImages"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="1dp"
tools:layout_editor_absoluteY="1dp" />
</LinearLayout>
Это мой элемент:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:layout_editor_absoluteX="1dp"
tools:layout_editor_absoluteY="1dp" >
<ImageView
android:id="@+id/img"
android:src="@drawable/newimage"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Так почему он ничего не отображает? Я чувствую, что все сделал правильно.
Для Image sr c, теперь это не Dynami c, я использую непосредственно изображение в моем рисовании, я установил исходный код с кодом, не работать, установить его в XML, не работает, установить его в обоих, и LOL не работает.
Любая помощь будет высоко ценится.