Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 19 июн 2018, 19:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: 09 окт 2012, 14:19 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
у Андроида есть такая бида, из-за того что памятью управляет не разработчик а Dalvik, то он там что то скапливает или плохо распределяет ресурсы, из-за этого Андроид много "жрёт" батарею, и по этому телефоны на Андроиде садятся очень быстро (бывает новые телефоны за пол дня садятся) и это одна из самых больных тем. Если же Dalvik была так же открыта как сама ОСь может и можно было бы что то предпринять, а так вижу что народ часто устанавилвает всякие сборщики мусора и освободители памяти что бы освобождать/закрывать не нужные программы.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 16:24 

Зарегистрирован: 07 ноя 2012, 16:16
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Мне кажется тут @Override перед onClick лишний - мы же не переопределяем метод супер-класса, а реализуем метод интерфейса.
Если не прав - поправьте, зеленый еще в этом деле :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 20:32 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
это зависит от апи версии а переопределение здесь не причём

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 ноя 2012, 09:26 

Зарегистрирован: 07 ноя 2012, 16:16
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Порылся на сайте документации и нарыл вот это.
http://developer.android.com/reference/ ... rride.html
Привязку к версии API я не нашел, да и логики в том, чтобы нарушать прямую и обратную совместимость версий API не правильно имхо. В статье как раз про переопределение написано.
Можете привести пример версии API, в которой допускается @Override перед onClick (берется в расчет первое определение при реализации интерфейса OnClickListener как в примере урока)?
Я лично только что проверил в 8, 10 и 14 (больше было лень :) ) - везде начинает ругаться:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. The method onClick(View) of type MainActivity must override a superclass method

В принципе логично, если следовать логике ООП и реализации интерфейсов.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 ноя 2012, 11:07 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Override это аннтотация компилятору о том что будет переопределён метод суперкласса. В большей степени зависит от настройки IDE. То есть если вы делаете переопределение скажем метода onResume() без аннотации то не гарантируется на 100% что он будет переопределён. Такая ошибка в основном может быть когда при запущенном приложении идёт звонок и активити переходит в паузу, то потом оно возможно не сможет восстановиться. Вот как то так.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 дек 2012, 17:17 

Зарегистрирован: 09 авг 2012, 13:30
Сообщений: 20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Есть 2 активити. Основная и дополнительная.
На основной есть список
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.  ListView listContent = (ListView)findViewById(R.id.listContent);

По длинному клику редактируются данные выбранного элемента. Редактирование на 2-й активити.
Пробую при закрытии 2-й активити обновить список и выполнить переход на тот же элемент списка.
Для примера на какой-нибудь элемент(последний)
Пробовал засунуть код перехода в
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.    
  2. @Override
  3.     protected void onResume() {
  4.       super.onResume();
  5.       Log.d("LOG_TAG", "MainActivity: onResume()");
  6.       this.listContent.setSelection(15);       
  7.     }

При запуске программа пишет ошибку
12-12 14:11:20.274: E/AndroidRuntime(790): java.lang.RuntimeException: Unable to resume activity {ru.mail.Simplydatabase_1/ru.mail.Simplydatabase_1.Simplydatabase_1Activity}: java.lang.NullPointerException

решил через доп.процедуру
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.         private void SelectedPosition(int ip){
  2.                 listContent = (ListView)findViewById(R.id.listContent);
  3.                 listContent.setSelection(ip);  
  4.                 Toast.makeText(
  5.                                 getApplicationContext(),
  6.                                 "Вы выбрали "
  7.                                                 + Abon_name+" position="+ip,
  8.                                 Toast.LENGTH_SHORT).show();
  9.         }
  10.  

и ее вызов в onResume(). Оказывается, переменная listContent , которую мы инициализировали в OnCreate уже не видится в OnResume


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 янв 2013, 17:26 
Аватар пользователя

Зарегистрирован: 06 ноя 2012, 00:29
Сообщений: 12
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Странно, у меня, когда нажимаю кнопку go to activity two в логах
Цитата:
...
ActivityTwo: onResume()
MainActivity: onPause() (вместо onStop() в вашем примере).


А ещё выходя из приложения пишет не
Цитата:
MainActivity: onPause()
MainActivity: onStop()
MainActivity: onDestroy()

а
Цитата:
MainActivity: onPause()
MainActivity: onPause()
MainActivity: onDestroy()


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 янв 2013, 15:26 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1394
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
Vici писал(а):
Странно, у меня, когда нажимаю кнопку go to activity two в логах

А код точно мой скопировали полностью? Поведение очень похоже на ошибку копипаста, если сами код рисовали

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 15:14 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Здравствуйте. Подскажите, пожалуйста, как правильно сделать: есть активити 1 с картой и активити 2 в текстовым полем и кнопкой. При запуске показывается активити 1, из меню активити 1 можно перейти в активити 2, там кнопка, по которой идёт переход на активити 1 и там указывается место. Сейчас при переходе с кнопки активити 1 пересоздается. Вопрос: как правильно сделать, чтоб при переходе с меню активити 1 ставилась на "паузу", а при переходе с кнопки "возобновлялось"? Если я правильно выразился.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 21:32 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
а как вы делаете переход со второй активити в первую? наверное startActivity?

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 22:36 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
а как вы делаете переход со второй активити в первую? наверное startActivity?

Да.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. Intent intent = new Intent(this, Activity1.class);
  2. startActivity(intent);


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 23:05 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
вы и ответили на свой вопрос))) вы же создаёте новое активити. Убиваете воторую finish(), вторая убъётся и со стека вызовится предыдущая, то есть первая.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 23:13 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
вы и ответили на свой вопрос))) вы же создаёте новое активити. Убиваете воторую finish(), вторая убъётся и со стека вызовится предыдущая, то есть первая.

Что-то я не понял :) когда я перехожу из 1 на 2, мне 1 нужно убить?
когда из 2 на 1 убить 2 ? :)
Мне нужно из меню 1 перейти в 2, оттуда перейти в 1 взять координаты точки, и с ними потом вернуться в 2 с результатом :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 23:18 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Или когда перехожу из 1 в 2 ничего не убивать, а когда из 2 в 1, то 2 убить? Так? :)
На кнопке в активити 2 такой код?
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. Intent intent = new Intent(this, Activity1.class);
  2. startActivity(intent);
  3. finish();
  4.  


Последний раз редактировалось Digetix 07 фев 2013, 23:24, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 23:21 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
так

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2013, 23:39 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Что не так. При запуске приложения идёт проверка включен ли GPRS.
Переход из 1 в 2
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. Intent intent = new Intent(this, Activity2.class);
  2. startActivity(intent);
  3.  

Переход из 2 в 1
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. Intent intent2 = new Intent(this, Activity1.class);
  2. startActivity(intent2);
  3. finish();
  4.  

При этом при переходе из 2 в 1 снова включается проверка на включение GPRS, я так понимаю, что 1 снова создается.
Или лучше сделать проверки на первый запуск приложения?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 фев 2013, 00:26 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
мда...
Переход из 2 в 1:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. finish();

P.S. такой себе вопросик: на телефоне нету кнопки back? :?

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 фев 2013, 10:53 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
мда...
Переход из 2 в 1:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. finish();

P.S. такой себе вопросик: на телефоне нету кнопки back? :?

Есть. Мне ж нужно не просто туда-сюда по активити переходить. Мне нужно по кнопке переходить. А вы предлагаете этой кнопкой просто убить её и поднять первую. Или я что-то недопонимаю. Объясню смысл приложения. Запускается первое активити с картой, отображается текущее положения пользователя. В Меню есть кнопка Добавить точку. По ней пользователь переходит на активити 2, там заполняет текстовые поля, добавляет фото и там же есть кнопка указать место на карте, по ней нужно вернуться в карту (то есть активити 1), взять координаты точки и с этими координатами вернуться в 2. А если я убью 2 при возврате в 1, то все текстовые данные уничтожаться. Так?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 фев 2013, 12:04 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Цитата:
А если я убью 2 при возврате в 1, то все текстовые данные уничтожаться. Так?

во второй да, уже данных не будет

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 фев 2013, 13:24 

Зарегистрирован: 12 окт 2012, 15:31
Сообщений: 117
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
Цитата:
А если я убью 2 при возврате в 1, то все текстовые данные уничтожаться. Так?

во второй да, уже данных не будет

Ну а можно сделать так, чтоб с 1 на 2, с 2 на 1, взять данные, и снова на 2, при этом не плодить активити и данные сохранить?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB