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

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

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

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

12.03.2015, 10:37. Просмотров 522. Ответов 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://..."; // это не работает :( все равно по старому адресу запрос идет...
}

И теперь не знаю, как поменять сделать разный УРЛ в обоих классах... Может есть какое то стандартное решение для такой штуки?))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2015, 10:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как переназначить переменную в классе (Программирование Android):

Изменить переменную из класса MainActivity в классе MainRenderer - Программирование Android
Ребята подскажите пожалуйста, у менять есть два файла: MainActivity.java import android.opengl.GLSurfaceView; import...

Как в отдельном классе сохранять переменные? - Программирование Android
Добрый день! есть класс, в нем сотни переменных, их значения меняются. как сохранять их значения и как вызывать из другого класса...

Как из Thread в отдельном классе получить context приложения? - Программирование Android
Например есть AcceptThread extends Thread и MainActivity extends Activity Как в AcceptThread вызвать к примеру Toast? ...

Класс: Как получить значение нестатичной переменной из класса One в классе Two? - Программирование Android
Java.Есть два класса One и Two. В классе One есть не статичная переменная t. Как получить значение t в классе Two? За готовый код буду...

Как разбить переменную на строки? - Программирование Android
У меня есть переменная Text1 типа String, в которой записано: Строка0$Строка1$Строка2 . Как разбить ее на строки и записать в массив? То...

Как отправить переменную на сервер - Программирование Android
Здравствуйте. У меня банальный вопрос..Есть например в андроид программе переменная которую я хочу отправить на сервер(php чисто для...

14
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.03.2015, 10:49 #2
Как вариант, ложить/менять, а потом и доставать из SharedPreferences...
1
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
12.03.2015, 10:53  [ТС] #3
Armagedo, да этот метод знаю. Просто еще никогда не "трогал" SharedPreferences, поэтому хотел как то обойтись обычным переназначением переменной))
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
12.03.2015, 11:33 #4
А если использовать фрагменты, а класс оставить один?
1
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
12.03.2015, 11:37  [ТС] #5
Цитата Сообщение от Rube Посмотреть сообщение
А если использовать фрагменты, а класс оставить один?
Может быть... спасибо =)

Надо будет покопать setContent для табов, и про Intent вспомнить. А то на вскидку я не особо понимаю, как можно с одним классом два таба заполнить))
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
12.03.2015, 11:46 #6
Да ничего сложного, копай ViewPager и PagerAdapter.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 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://..."; // а вот так работает.
}
В вашем варианте вы создаете локальный объект и назначаете ему значение, а нужно переназначить поле, которое есть у обоих классов.
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
12.03.2015, 19:59  [ТС] #8
Spelcrawler, было бы логично, если бы работало Все подчеркивается красным. При наводке мыши на саму переменную ругается так Unknown class: 'myUrl', а при наводке на строку в кавычках ругается так - Unexpected token...

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

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

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

Spelcrawler, так тоже не сработало)) В общем сделал метод getUrl и переопределил его... Но уже чисто спортивный интерес, почему же методы переопределяются, а свойства - нет...
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
13.03.2015, 17:49 #13
Цитата Сообщение от z-z Посмотреть сообщение
так тоже не сработало
Не может быть.
0
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
}
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
14.03.2015, 11:35 #15
Ну дак в методах нужно писать то. Или в конструкторе.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 11:35
Привет! Вот еще темы с ответами:

Как объявить переменную в Андроид Студио? - Программирование Android
Не кидайте тапками, если вопрос сильно глупый) Осваиваю Андроид Студио по урокам Александра Климова...

Как сохранить целочисленную переменную в кэше? - Программирование Android
как сохранить целочисленную переменную в КЭШе?? можете привести фрагмент кода??

Как изменить переменную в другом Activity? - Программирование Android
Как изменить переменную в другом Activity?

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
14.03.2015, 11:35
Ответ Создать тему
Опции темы

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