С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
JavaStarter
11 / 11 / 3
Регистрация: 14.05.2015
Сообщений: 52
#1

Swap resources одной кнопкой - Программирование Android

21.11.2015, 03:23. Просмотров 249. Ответов 6
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста, как можно сделать так, чтобы два текст. поля обменивались своими ресурсами(текст, цвет) посредством нажатия одной кнопки. Я понимаю, что можно сделать двумя кнопками, но как одной - немогу понять.
Пока сделал так, что при нажатии они меняются ресурсами один раз:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        tv1 = (TextView) findViewById(R.id.text1);
        tv2 = (TextView) findViewById(R.id.text2);
 
        Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener(){
 
            @Override
            public void onClick(View v) {
            
                tv1.setText(getResources().getText(R.string.hello));
                tv1.setTextColor(getResources().getColor(R.color.colorAccent));
 
                tv2.setText(getResources().getText(R.string.helloandroid));
                tv2.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
 
            }
        });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2015, 03:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Swap resources одной кнопкой (Программирование Android):

Простое приложение с одной кнопкой - Программирование Android
Нужно простое приложение на Android. Суть в том, что в программе будет куча названий (не важно чего) и все одна кнопка, при нажатии на...

Resources$NotFoundException - Программирование Android
Вылет приложения с ошибкой android.content.res.Resources$NotFoundException: String resource ID #0x7f06002a на строке Toast toast =...

В классе не Activity доступ к Resources - Программирование Android
У меня есть класс Joke, который не является activity. В MainActivity создаю экземпляр класса Joke : Joke joke = new Joke(this); А в...

String-array resources, как глобальная переменная - Программирование Android
Требуется помощь! У меня есть 16 массивов <string-array>, в активити, когда я хочу обратится к ним, прописывать для каждого ...

Android.content.res.Resources$NotFoundException: String resource ID #0xffffffaf - Программирование Android
Учу работать с AsyncTask и все время вылазит ошибка android.content.res.Resources$NotFoundException: String resource ID #0xffffffaf ...

Помимо файла apk, образовался файл resources.ap_. Его нужно будет заливать на сайт тоже? - Программирование Android
У меня в приложении действительно есть ресурсы. Я так понимаю этот файл необходим что бы они отображались? То есть его нужно куда-то...

6
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
21.11.2015, 07:38 #2
ну сделайте третью невидимую кнопку, которая будет буфером.
хотя с точки зрения тестового задания для собеседования, это плохой способ.
таки это задание или просто надо? :-)
1
JavaStarter
11 / 11 / 3
Регистрация: 14.05.2015
Сообщений: 52
21.11.2015, 07:56  [ТС] #3
Спасибо за ответ. Это условие задания такое) Можно сделать двумя кнопками, но в условии именно одной
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
21.11.2015, 11:57 #4
JavaStarter, я бы сделал так:

Java
1
2
3
4
private static class SettingHolder {
        private int color;
        private String text;
    }
и свап:
Java
1
2
3
4
5
6
7
8
9
SettingHolder settingHolder = new SettingHolder();
        settingHolder.color = textView1.getCurrentTextColor();
        settingHolder.text = textView1.getText().toString();
 
        textView1.setText(textView2.getText());
        textView1.setTextColor(textView2.getCurrentTextColor());
 
        textView2.setText(settingHolder.text);
        textView2.setTextColor(settingHolder.color);
1
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
21.11.2015, 17:37 #5
стоп-стоп. или я Вас запутал, или Вы меня.
у Вас 2 текстовых поля и одна кнопка. при нажатии на кнопку, текстовые поля должны обмениваться цветом и текстом.
совет YuraAAA должен Вам подойти для реальной жизни. можно даже не делать отдельный класс, а обойтись парой локальных переменных.
если вопрос про задание, которое критично сделать без использования дополнительных переменных, то есть другой путь.
таки уточните. :-)
1
JavaStarter
11 / 11 / 3
Регистрация: 14.05.2015
Сообщений: 52
22.11.2015, 05:45  [ТС] #6
Спасибо за ответы! Это ошибка препода была, нужно было один раз swap resources сделать. Извиняюсь, что сразу не уточнил!
0
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
22.11.2015, 06:16 #7
...дело в том, что есть очень популярная задача на собеседовании, которая напоминает Ваш вопрос.
http://tproger.ru/problems/write-a-f...ary-variables/
1
22.11.2015, 06:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2015, 06:16
Привет! Вот еще темы с ответами:

Как добавить несколько файлов одной кнопкой и в одной форме php - PHP БД
Здравствуйте! Как добавить несколько файлов одной кнопкой и в одной форме php Например есть такая форма: <form method='POST'...

2 формы с одной кнопкой - PHP
Добрый вечер... Не подскажите как правильно сделать 2 формы для ввода адреса, и их запуск одной кнопкой "проверить". Имеется скрипт...

Сохранение одной кнопкой - PHP
У меня есть форма в которой есть текстовые поля для заполнения и в базе есть все что заполняется ... могу каждые данные сохранять по...

Управление светодиодом одной кнопкой - AVR
Всем привет, прошу проверить код на правильность, у меня AVR ругается, но по алгоритму вроде бы правильно, нажимаем кнопку, если светодиод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.