如何在 Android 中用 Carousel 中的 ImageView 的变化来改变 TextView

How to change TextView with the change of the ImageView in a Carousel in Android

我正在开发一个项目,我在其中使用此 library 创建了一个 Carousel。

我还想在 TextView 中显示图像描述,它应该随着图像的变化而变化。 随着图像的变化,我无法更改 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>

我知道问这个问题可能很愚蠢,但我想不通。如果有任何帮助,我将不胜感激。

我不确定我是否正确理解了你的问题,但是

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

您不能在此方法中添加设置您的 textview 值吗?

从你的 xml 我可以看到你正在使用你提到的 Carousel View Library 但 Carousel View Lib 不支持 Image Listener,所以你最好的选择是改变你的库,或在 activity 中使用 Fragments,详细了解 here