Android - как положить это в цикл

Я создаю приложение, в котором у меня есть 18 кнопок (bAnswer1 - bAnswer18) и 6 текстовых просмотров (tvAnswer1 - 6). Мое значение состоит в том, чтобы нарезать 6 слов в 3 словах из 2 (например, button, bu-tt-on). Я сделал это с 6 словами, и каждый поместил их в срез (срез с 1 по 18), чтобы этот код повторялся до случая R. id.bAnswer18: и вы, ребята, заметите, что это будет hugh !! Я знаю, что могу сделать это очень просто, просто добавив цикл for, но он не будет работать, и я не могу выбраться ?!

Может кто-то, пожалуйста, помогите мне из этого?

Мой код:

public void onClick(View arg0) {
   //TODO Auto-generated method stub

    switch (arg0.getId()) {
    case R.id.bAnswer1:

        if (testing1 != 6) {
            String old = tvAnswer1.getText().toString();
            tvAnswer1.setText(old + slice1);
            bAnswer1.setVisibility(View.GONE);
            break;

        }
        if (testing2 != 6) {
            String old = tvAnswer2.getText().toString();
            tvAnswer2.setText(old + slice1);
            bAnswer1.setVisibility(View.GONE);
            break;
        }
        if (testing3 != 6) {
            String old = tvAnswer3.getText().toString();
            tvAnswer3.setText(old + slice1);
            bAnswer1.setVisibility(View.GONE);
            break;
        }
        if (testing4 != 6) {
            String old = tvAnswer4.getText().toString();
            tvAnswer4.setText(old + slice1);
            bAnswer1.setVisibility(View.GONE);
            break;
        }
        if (testing5 != 6) {
            String old = tvAnswer5.getText().toString();
            tvAnswer5.setText(old + slice1);
            bAnswer1.setVisibility(View.GONE);
            break;
        }
        if (testing6 != 6) {
            String old = tvAnswer6.getText().toString();
            tvAnswer6.setText(old + slice1);
            bAnswer1.setVisibility(View.GONE);
            break;
        }

        break;
    case R.id.bAnswer2:
        if (testing1 != 6) {
            String old = tvAnswer1.getText().toString();
            tvAnswer1.setText(old + slice2);
            bAnswer2.setVisibility(View.GONE);
            break;

        }
        if (testing2 != 6) {
            String old = tvAnswer2.getText().toString();
            tvAnswer2.setText(old + slice2);
            bAnswer2.setVisibility(View.GONE);
            break;
        }
        if (testing3 != 6) {
            String old = tvAnswer3.getText().toString();
            tvAnswer3.setText(old + slice2);
            bAnswer2.setVisibility(View.GONE);
            break;
        }
        if (testing4 != 6) {
            String old = tvAnswer4.getText().toString();
            tvAnswer4.setText(old + slice2);
            bAnswer2.setVisibility(View.GONE);
            break;
        }
        if (testing5 != 6) {
            String old = tvAnswer5.getText().toString();
            tvAnswer5.setText(old + slice2);
            bAnswer2.setVisibility(View.GONE);
            break;
        }
        if (testing6 != 6) {
            String old = tvAnswer6.getText().toString();
            tvAnswer6.setText(old + slice2);
            bAnswer2.setVisibility(View.GONE);
            break;
        }
        break;
0
Просто поместите вокруг него петлю. Как вы сказали, вы уже знаете, как сделать его простым, так что просто сделайте его простым.
добавлено автор Shark, источник
зачем вам нужно здесь?
добавлено автор TheWhiteRabbit, источник
У вас должен быть массив кнопок и другой массив текстовых просмотров вместо 6 или 18 полей. Остальное будет тривиально.
добавлено автор Anton Kovalenko, источник
Покажите нам свою цикл FOR - это то, что сломано, и вам нужна помощь с
добавлено автор Mr Spoon, источник

1 ответы

Реальный ответ, который вы ищете, на самом деле не в цикле.

Для цикла будет использоваться, если вы сделаете это

 OnClickListener myOnClick = new OnClickListener() {
 //privately paste what you had
 public void onClick(View v) {
 if (testing1 != 6) {
        String old = tvAnswer1.getText().toString();
        tvAnswer1.setText(old + slice1);
        v.setVisibility(View.GONE);
        break;

    }
    if (testing2 != 6) {
        String old = tvAnswer2.getText().toString();
        tvAnswer2.setText(old + slice1);
        v.setVisibility(View.GONE);
        break;
    }
    if (testing3 != 6) {
        String old = tvAnswer3.getText().toString();
        tvAnswer3.setText(old + slice1);
        v.setVisibility(View.GONE);
        break;
    }
    if (testing4 != 6) {
        String old = tvAnswer4.getText().toString();
        tvAnswer4.setText(old + slice1);
        v.setVisibility(View.GONE);
        break;
    }
    if (testing5 != 6) {
        String old = tvAnswer5.getText().toString();
        tvAnswer5.setText(old + slice1);
        v.setVisibility(View.GONE);
        break;
    }
    if (testing6 != 6) {
        String old = tvAnswer6.getText().toString();
        tvAnswer6.setText(old + slice1);
        v.setVisibility(View.GONE);
        break;
    }});


 Button[] answerButtons = new Button[18];

 for(Button answer : answerButtons)
     answer.setOnClickListener(myOnClick);

Помните, что не выполняйте OnClickListener с помощью Activity, пусть сами представления обрабатывают его, если вам действительно не нужно самостоятельно обрабатывать/отправлять onClicks.

0
добавлено
Я определяю локальный OnClickListener, а затем назначаю тот же самый onClickListener каждой кнопке. Функциональность будет зависеть от нажатия кнопки, но по сути одно и то же произойдет для каждой кнопки.
добавлено автор Shark, источник
Другое дело, это использование break; , почему не использовать else if ? и если это все ваши случаи, вы можете выйти из v.setVisibility (View.GONE); из предложений if.
добавлено автор ƒernando Valle, источник
Спасибо за ваше время! Но я не так далеко на сцене Android. Что я вижу, вы создаете onclickListener, и вы положили туда все 18 кнопок, поэтому мне больше не нужно использовать эти случаи?
добавлено автор Sevo, источник
Y Я уже видел, что один ха-ха, но все еще застрял на одном вопросе
добавлено автор Sevo, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async

Android Rus
Android Rus
68 участник(ов)