Как изменить TextView с изменением ImageView в карусели в Android

#java #android #text #carousel

#java #Android #текст #карусель

Вопрос:

Я работаю над проектом, в котором я создал Карусель, используя эту библиотеку.

Я также хочу показать описание изображения в текстовом представлении, которое должно меняться по мере изменения изображения. Я не могу изменить TextView при изменении изображения. Что я должен сделать, чтобы это произошло?

Мой Java-код:

 public class Carousel extends AppCompatActivity {
CarouselView carouselView;

int[] sampleImages = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_about_devs);

    carouselView = findViewById(R.id.carouselView);
    carouselView.setPageCount(sampleImages.length);
    carouselView.setImageListener(imageListener);
}
ImageListener imageListener = (position, imageView) -> imageView.setImageResource(sampleImages[position]);
 

Мой XML-код:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/retro_red"
tools:context=".AboutDevs">


<TextView
    android:id="@ id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="@font/pragya"
    android:text="@string/about_devs"
    android:textColor="@color/white"
    android:textSize="28sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.074" />

<com.synnapps.carouselview.CarouselView
    android:id="@ id/carouselView"
    android:layout_width="400dp"
    android:layout_height="450dp"
    android:layout_marginTop="28dp"
    android:layout_marginEnd="4dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@ id/textView5"
    app:layout_constraintVertical_bias="0.235" />
</androidx.constraintlayout.widget.ConstraintLayout>
 

Я знаю, что это может быть глупо спрашивать, но я не могу понять это. Я был бы признателен за любую помощь.

Ответ №1:

Из вашего xml я вижу, что вы используете библиотеку просмотра Carousel, как вы упомянули, но библиотека просмотра Carousel не поддерживает прослушиватель изображений, поэтому лучше всего было бы либо изменить вашу библиотеку, либо использовать фрагменты в своей деятельности, подробнее об этом здесь

Ответ №2:

Я не уверен, правильно ли я понимаю ваш вопрос, но

     ImageListener imageListener = new ImageListener() {
        @Override
        public void setImageForPosition(int position, ImageView imageView) {
            imageView.setImageResource(sampleImages[position]);
        }
    };
 

Разве вы не можете просто добавить настройку вашего значения textview в этот метод?