如何切换 ImageView 按钮

How to toggle ImageView buttons

我目前有三个 Imageview 按钮,它们在我的 android 应用程序中调用三个不同的功能。我想使用一个按钮而不是 3 个按钮,它应该在每次点击时调用每个功能(如切换按钮)。请找我目前的XML三个独立按钮的结构(ImageView)

<ImageView
        android:id="@+id/img_align_left"
        android:layout_width="@dimen/icon_width"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:contentDescription="TODO"
        android:padding="10dp"
        app:srcCompat="@drawable/ic_format_align_left" />

    <ImageView
        android:id="@+id/img_align_center"
        android:layout_width="@dimen/icon_width"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="10dp"
        app:srcCompat="@drawable/ic_format_align_center" />

    <ImageView
        android:id="@+id/img_align_right"
        android:layout_width="@dimen/icon_width"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="10dp"
        app:srcCompat="@drawable/ic_format_align_right" />

这里是函数调用脚本,主要用于activity。

 img_align_left.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_START) }
    img_align_center.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_CENTER) }
    img_align_right.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_END) }

如果查询为您提供了足够的信息,请告诉我。 谢谢!

------------------------更新-------------------- ------------------

基于@Kam 代码,我能够解决问题(我使用 Kotlin)。这是代码。

    var count=0
        img_align_left.setOnClickListener {

            when (count) {
                0 -> {
                    alingnText(View.TEXT_ALIGNMENT_TEXT_START)
                }


                1 -> {
            alingnText(View.TEXT_ALIGNMENT_CENTER)
                }

                2 ->
            {alingnText(View.TEXT_ALIGNMENT_TEXT_END)}

            }

if(count>1)
        count=0
        else
        count++}

谢谢:)

您可以拥有一个按钮和一个您上次更改 imageView 的计数器。

    int counter = 0;
    button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 switch(counter){
                    case 0:
                    //First ImageView
                    counter++;
                    break;
                    case 1:
                    //Second ImageView
                    counter++;
                    break;
                    case 2:
                    //Third ImageView 
                    counter = 0;
                    break;
                }
            }
        });

因此,每次单击按钮时,它都会更改计数器值,直到到达第三个 imageView。再次点击后,按钮将聚焦于第一个imageView。