Я установил кнопку, чтобы изменить имя другой кнопки, после изменения она не работает - PullRequest
0 голосов
/ 03 февраля 2019

Я установил кнопку вверх, чтобы изменить язык с английского на валлийский, всего около 5 строк английского языка, поэтому просто изменив текст в каждом поле вручную .setText

Мне также нужно было изменить текстна кнопках это работает, но как только я меняю язык, другие кнопки перестают функционировать.

Приведенный ниже код - это то, что происходит, когда нажимается кнопка «Английский» (то же самое происходит и при нажатии на валлийскую кнопку).но по-валлийски)После нажатия кнопок «calc», «reset», «calc2» и «reset2» перестают выполнять функцию, для которой они настроены ... но работают до того, как не будет нажата ни одна кнопка.

Есть идеи?

Спасибо

        english.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            quantity1.setText("Quantity");
            total1.setText("Minimum");

            Button calc = findViewById(R.id.buttoncalc);
            calc.setOnClickListener(this);
            calc.setText("Calculation");

            Button reset = findViewById(R.id.buttonreset);
            reset.setOnClickListener(this);
            reset.setText("Reset");

            Button calc2 = findViewById(R.id.buttoncalc2);
            calc2.setOnClickListener(this);
            calc2.setText("Calculation");

            Button reset2 = findViewById(R.id.buttonreset2);
            reset2.setOnClickListener(this);
            reset2.setText("Reset");

            multi_title.setText("Multi Calculator");
            single_title.setText("Single Calculator");

        }
    });

Ответы [ 3 ]

0 голосов
/ 03 февраля 2019
Button calc = findViewById(R.id.buttoncalc);
Button reset = findViewById(R.id.buttonreset);
Button calc2 = findViewById(R.id.buttoncalc2);
Button reset2 = findViewById(R.id.buttonreset2);

setClicks();

english.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {


        quantity1.setText("Quantity");
        total1.setText("Minimum");
        calc.setText("Calculation");
        reset.setText("Reset");
        calc2.setText("Calculation");
        reset2.setText("Reset");
        multi_title.setText("Multi Calculator");
        single_title.setText("Single Calculator");

    }
});

private void setClicks() {

calc.setOnClickListener(this);
reset.setOnClickListener(this);
calc2.setOnClickListener(this);
reset2.setOnClickListener(this);

}

Пожалуйста, попробуйте и проверьте еще раз

0 голосов
/ 03 февраля 2019

это совершенно неправильный подход к проблеме ...

, потому что фреймворк отлично поддерживает это "из коробки", не тусуясь.

В Android Studio даже есть редактор перевода,где можно переводить бок о бок.

см. документацию , а также локализация .

0 голосов
/ 03 февраля 2019
calc.setOnClickListener(this);

это ключевое слово здесь ссылается на прослушиватель кликов английского языка, поэтому ваши основные функции не работают.Попробуйте установить все clicklistener за пределами области прослушивания английского клика.И ваш код будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...