Как переключать кнопки ImageView

В настоящее время у меня есть три кнопки просмотра изображений, которые вызывают три разные функции в моем приложении для Android. Вместо трех кнопок я хочу использовать одну кнопку, которая должна вызывать каждую функцию при каждом нажатии (например, кнопка-переключатель). Пожалуйста, найдите мою текущую 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" />

А вот скрипт вызова функции, который используется в основной активности.

 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++}

Спасибо :)

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
191
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что у вас может быть, так это кнопка и счетчик, для которого вы последний раз меняли 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;
                }
            }
        });

Таким образом, каждый раз, когда вы нажимаете кнопку, значение счетчика будет изменяться, пока вы не достигнете третьего изображения. Как только вы щелкнете по ней еще раз, кнопка сфокусируется на первом изображении.

Спасибо за ответ. Проверю с тем же и вернусь. Я новичок в андроиде :)

Gopa 27.01.2019 07:40

@KamСпасибо. Ваш код помог мне решить проблему. Мое решение, основанное на вашем ответе, было обновлено в моем запросе (я использую Kotlin)

Gopa 27.01.2019 18:22

Другие вопросы по теме