Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
#1

Как переназначить переменную в классе - Программирование Android

12.03.2015, 10:37. Просмотров 501. Ответов 14
Метки нет (Все метки)

Здравствуйте.

Есть две активности, которые расположены внутри TabWidget в разных вкладках. Для каждой активности есть свой класс.

Дело в том, что в этих активностях выполняются запросы к серверу. И УРЛ будет различаться только GET параметрами...

И я не знаю, как это реализовать, не прибегая к сохранению переменных в памяти. Первый класс выглядит примерно так

Java
1
2
3
4
5
6
7
8
9
10
11
public class MyClass1 extends Activity implements View.OnClickListener {
 
    Button dwn;
    ExpandableListView elv;
    LinearLayout container;
    ProgressBar pb;
 
 
    String myUrl = "http://...";
 
    // и так далее
Со вторым классом решил не заморачиваться и сделал так:

Java
1
2
3
public class MyClass2 extends MyClass1 {
    String myUrl = "http://..."; // это не работает :( все равно по старому адресу запрос идет...
}

И теперь не знаю, как поменять сделать разный УРЛ в обоих классах... Может есть какое то стандартное решение для такой штуки?))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2015, 10:37     Как переназначить переменную в классе
Посмотрите здесь:
Android Изменить переменную из класса MainActivity в классе MainRenderer
Как в отдельном классе сохранять переменные? Android
Android Как из Thread в отдельном классе получить context приложения?
Android Класс: Как получить значение нестатичной переменной из класса One в классе Two?
Как разбить переменную на строки? Android
Android Как отправить переменную на сервер
Как сохранить целочисленную переменную в кэше? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.03.2015, 10:49     Как переназначить переменную в классе #2
Как вариант, ложить/менять, а потом и доставать из SharedPreferences...
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
12.03.2015, 10:53  [ТС]     Как переназначить переменную в классе #3
Armagedo, да этот метод знаю. Просто еще никогда не "трогал" SharedPreferences, поэтому хотел как то обойтись обычным переназначением переменной))
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
12.03.2015, 11:33     Как переназначить переменную в классе #4
А если использовать фрагменты, а класс оставить один?
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
12.03.2015, 11:37  [ТС]     Как переназначить переменную в классе #5
Цитата Сообщение от Rube Посмотреть сообщение
А если использовать фрагменты, а класс оставить один?
Может быть... спасибо =)

Надо будет покопать setContent для табов, и про Intent вспомнить. А то на вскидку я не особо понимаю, как можно с одним классом два таба заполнить))
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
12.03.2015, 11:46     Как переназначить переменную в классе #6
Да ничего сложного, копай ViewPager и PagerAdapter.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.03.2015, 13:13     Как переназначить переменную в классе #7
Цитата Сообщение от z-z Посмотреть сообщение
Java
1
2
3
public class MyClass2 extends MyClass1 {
    String myUrl = "http://..."; // это не работает :( все равно по старому адресу запрос идет...
}
Java
1
2
3
public class MyClass2 extends MyClass1 {
    myUrl = "http://..."; // а вот так работает.
}
В вашем варианте вы создаете локальный объект и назначаете ему значение, а нужно переназначить поле, которое есть у обоих классов.
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
12.03.2015, 19:59  [ТС]     Как переназначить переменную в классе #8
Spelcrawler, было бы логично, если бы работало Все подчеркивается красным. При наводке мыши на саму переменную ругается так Unknown class: 'myUrl', а при наводке на строку в кавычках ругается так - Unexpected token...

Может надо как то глобально объявлять переменную? или надо что-нибудь импортировать в файл со вторым классом?

Добавлено через 8 минут
есть еще одна странность - внутри второго класса (тот, что наследуется от первого) редактор ругается на this... его то там почему нет?))
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.03.2015, 22:20     Как переназначить переменную в классе #9
Ну правильно, поле в первом классе должно быть public или protected. А this есть всегда, возможно не там пишете.
FeonoR
11 / 0 / 1
Регистрация: 22.03.2012
Сообщений: 27
13.03.2015, 06:45     Как переназначить переменную в классе #10
Ну если юрл отличается только параметрами - может стоит их просто принимать в конструкторе класса и не парить мозг?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
13.03.2015, 08:19     Как переназначить переменную в классе #11
FeonoR, тут уж не знаю. Был конкретный вопрос, я дал конкретный ответ, а зачем оно нужно это другой разговор.
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
13.03.2015, 17:45  [ТС]     Как переназначить переменную в классе #12
FeonoR, дело в том, что это класс активности. Я не создаю экземпляры, у меня просто один активити наследуется вторым))

Но вообще в будущем я думал все таки логику отделить... наверно тогда легче будет все это собирать

Spelcrawler, так тоже не сработало)) В общем сделал метод getUrl и переопределил его... Но уже чисто спортивный интерес, почему же методы переопределяются, а свойства - нет...
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
13.03.2015, 17:49     Как переназначить переменную в классе #13
Цитата Сообщение от z-z Посмотреть сообщение
так тоже не сработало
Не может быть.
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
14.03.2015, 11:20  [ТС]     Как переназначить переменную в классе #14
Spelcrawler, вот так выглядел код

Java
1
2
3
4
5
6
7
8
public class MyClass1 {
    public String myUrl = "...";
}
 
public class MyClass2 extends MyClass1 {
    this... // тут уже ругается на this и сразу подчеркивает его красным
    myUrl = "..."; // на такую строку тоже ругается так же, как и в прошлом варианте без public
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 11:35     Как переназначить переменную в классе
Еще ссылки по теме:
Android Как объявить переменную в Андроид Студио?
Android Как изменить переменную в другом Activity?
Android Как в Toast использовать переменную типа int
Создание калькулятора: как посчитать строковую переменную Android
Как скопировать в переменную первые 10 символов из editText Android

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

Или воспользуйтесь поиском по форуму:
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
14.03.2015, 11:35     Как переназначить переменную в классе #15
Ну дак в методах нужно писать то. Или в конструкторе.
Yandex
Объявления
14.03.2015, 11:35     Как переназначить переменную в классе
Ответ Создать тему
Опции темы

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