Вопросы по программированию



Реп: (1392)
Прикрепленное изображение Google Android OS - Программирование
Вопросы по программированию » | Библиотека Android » (Временно не доступна)| FAQ | Каталог Open source программ для Android OS

Обсуждение тонкостей создания программ для Google Android OS.
При написании кода его надо правильно оформлять
[code] и [/code]

При написании большого кода его надо прятать под спойлер
[SPOILER]содержание спойлера[/SPOILER]

Скачать SDK http://developer.android.com/
Android Scripting Environment (ASE) - создание скриптов прямо на устройстве под управлением Android OS.

Всё самое лучшее из этой темы (находится в режиме наполнения)
Запуск бинарников требующих process_vm_readv или process_vm_writev до 23 API
Исправление обнаружения включаемых путей в Eclipse с новым NDK
Использование констант, как параметров в JNI
Баг андроида с пустым View для ListView
Баги расчета высоты элементов разметки в диалогах
Особенности компиляции нативного кода под ARM
Отображение ProgressBar и прочей анимации, когда она отключена, а также управление скоростью анимации
Как попробовать поймать исключения в чужом Runnable внутри Looper
Избегайте хранения View, которые использовались в ListView
Поддержка "плохих" прошивок
Синтетические методы и как избежать их появления
Подводные камни setCompoundDrawables и CheckedTextView
Вызов кода перед конструктором родителя
Особенности инициализации полей класса
Утечки памяти при использовании полей класса для хранения UI виджетов
Поиск багов статическим анализом кода
Перехват нативных функций
Пример запросов под ROOT'ом + ниже... + для общего понимания работы под root(важно!)
Баги popen и нативные краши
Полезная информация о "view" + ещё
Создание формы регистрации и авторизации(для сайта).
Logcat с 10 Android в Eclipse
Совет по сбору логов об ошибках
Пример кода для Dialog'a


И не поступайте как Джон.
Прикрепленное изображение

Обязательно к прочтению!
Уважаемые пользователи, в связи с отсутствием экстрасенсов, никто не сможет ответить на вопрос "Почему крашится приложение?" или "Почему приложение вылетает/force close ?" в случае отсутствия логов. Поэтому все такие вопросы будут удалены.

По вопросам наполнения шапки обращайтесь в QMS к Модераторам раздела или через кнопку «Жалоба» под сообщениями, на которые необходимо добавить ссылки.

Сообщение отредактировал Boy77ruS - 04.09.23, 21:51
Причина редактирования: Редактирование



Реп: (26)
Вот я лох!!!! Все у меня объявлено.... Сам разобрался. Эт все невнимательность. И я все правильно делал. Я просто забыл поставить _


<activity
          android:name = ".st1"
          android:label = "@string/st1">
</activity>
 


а надо так:

<activity
          android:name = ".st_1"
          android:label = "@string/st_1">
</activity> 


Сообщение отредактировал sahaga - 19.10.10, 00:06



Реп: (1)
Всем привет, вопрос такой:
Перепечатываю примеры из книги Дарьи, про игру Life.

Трабл на третьем шаге
Когда переписывается layout полностью.
Добавляется кнопка закрыть и прописываются диалоги согласия на закрытия, ругается компилятор (интерактивный который) на .CloseButton в строке:
mCloseButton = (Button) findViewById(R.id.CloseButton);
так же на R.string.no в строке:
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener()

поглядел в r.java, нету там строк no, close_button и прочих добавленных в string.xml
Как бы перегенерить r.java, чтобы ссылки на строковые переменные появились? А то там ведь ещё цифры какие то. =)



Реп: (1392)
zaxxon @ 25.10.2010, 14:42 *
поглядел в r.java, нету там строк no, close_button и прочих добавленных в string.xml

в папке layout должен быть файл с разметкой и в нем эти баттоны должны быть добавлены.



Реп: (1)
Угу. Баттоны добавлены в разметке. Глюк eclipse в другом.
Да и с обучающей книгой примеры идут уже набранные, сравниваю, вижу где промах.
Не может он написать на кнопке ее название, потому как в r.java нет ссылок, привязок на strings.xml.
А r.java я так понял автоматом генерится. А так как обучение по книге построено, на принципе - посмотрите как работает программа если сделать так, а теперь как будет работать, если переписать половину кода.
И после изменения части файлов, (*.java), r.java не обновляется.



Реп: (105)
Project->Clean ?



Реп: (110)
Кто в чем создает файл разметки? Сначала пытался писать в Eclipse, но на моей слабой машине все на столько тормозит, что невозможно пользоваться, перешел на IntelliJ IDEA, но в ней нет графического редактора разметки. Пробовал DroidDraw, но тоже показался не очень удобным. Может кто нибудь знает еще средства для создания разметки?



Реп: (806)
zaxxon,
R.java от java-файлов не зависит, только от ресурсов.

p.s. не мучайтесь вы с эклипсом, возьмите идею - она сейчас есть бесплатная для андроида



Реп: (0)
Чувоки, падскожыти. :P
Мине надо чтобы вот я рисую на графической поверхности в Surface (canvas) какой то например треугольник.. И разместил на этой поверхности типа графическую кнопку, взятую из /res/drawable/baton_off.png. :D А когда я нажимаю на эту кнопку, то должен тама появиться рисуночек отжатой кнопки из файла /res/drawable/baton_on.png. И вот как обработать нажатие на эту кнопку? чтобы и изображение кнопачки этой менялось и нажатия обрабатывались? :'((( Каков будет код?



Реп: (0)
И еще один вопрос, чувоки. :sveta:
Что то у миня эмулятор Android'a какой то странный в эклипсе. Ну я виртуальное устройство создал в андроид сдк, вроде почти все пункты включил.. А потом при запуске приложения в эмуляторе появляется только экран эмулятора.. а хардварной клавиатуры нету :'(( И я не знаю как ее включить. Эклипс 3.5.2.



Реп: (2)
выбери Window-Android AVD Manager-Virtual Devices-выбрать нужный-Launch и работай с ним
самого эта проблема выбесила в свое время



Реп: (16)
это, может кто чего подскажет:

втельмяшилась мысль сделать виджет часов на home (типа "хочень сделать хорошо сделай сам" и все такое.. ну и просто интересно поиграться)

Прикрепленное изображение

сделал кастомный контрол, приложение-"макет" для тестирования, рисуется, начал читать про виджеты собственно; и прозреваю, в layout-е нельзя использовать наследников от view?.. начал искать примеры - начиная с примера из сдк нахожу или таки да, текст меняется и все, или свои варианты аналогКлок, которые если я правильно понял просто "скинят" системный

но есть же куча виджетов (те же разные часы, погода, плееры и пр.), как они делаются?

пока вариант придумывается тупо картинками, а хочется знать, как на самом деле надо

з.ы. и ничего смешного, какое число я почти никогда не могу с ходу сказать, какой день недели иногда тоже :)

Сообщение отредактировал fat.hamster - 28.10.10, 13:49



Реп: (806)
fat.hamster @ 28.10.2010, 14:48 *
в layout-е нельзя использовать наследников от view

о чём, собственно, чёрным по белому написано в документации.

fat.hamster @ 28.10.2010, 14:48 *
как они делаются?

hierarchyViewer вам в помощь



Реп: (16)
о чём, собственно, чёрным по белому написано в документации.

та да.. да кто ж ее читает сразу, ту документацию.. :)

это ж тем более так, хобби, как есть пол-часа, так и делаешь что-то (документацией и так выше головы завален, на мак пересел и какао ихнее грызу)

спсб за наводку про hierarchyViewer, и видел же уже когда-то, да не вспомнил/сообразил вовремя



Реп: (16)
ковыряюсь тут со своим виджетом все, даже все работает, даже поставил себе в телефон, но красоты ради хочу сделать следующее: при удалении виджета хочу остановить таймер (который запускается при создании и тикает каждую секунду, время обновляет):
public class MyClock extends AppWidgetProvider {

private Timer timer; // в этой переменной класса хочу хранить указатель на созданный таймер

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int] appWidgetIds) {

timer = new Timer();
timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000); // [COLOR=darkred]вот я его создал и задал 1-секундное обновление[/COLOR]
}

@Override
public void onDisabled(Context context) {
timer.cancel(); // [COLOR=darkred]а вот виджет удаляется; хочу остановить таймер, но в этой точке он == nil[/COLOR]
super.onDisabled(context);
}


я рисую (обновляю картинки) только тогда, когда время реально обновляется, так что особо систему не нагружаю; если ничего с таймером не делать, просто удалить виджет, то в логах можно увидеть, что андроид через какое-то время убивает мой процесс - так что вроде все ок

но если удалить виджет, потом добавить - работают 2 процесса (или хрен знает как это в андроиде правильно называется, в общем 2 экземпляра таймера работают), как-то это по ощущениям неправильно; ну собств. суть вопроса не в этом, а в том - почему timer == nil?

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



Реп: (0)
Расскажите плиз разницу между OnTouchEvent и OnTouch. Смысл в том что OnTouchEvent прекрасно обрабатывает нажатия на экран и выполняет нужное действие при это для его использования не нужно ничего дополнительного, а вот для OnTouch нужно слушать событие OnTouchListener. Но даже при этом при нажатии на экран у меня ничего не происходит. Хотелось бы понять принципиальную разницу между ними



Реп: (16)
я или туплю, или очень сильно туплю, по поводу сервисов: прочитал "по диагонали" разделы нескольких книг про сервисы, но не нашел ответа - как передать в сервис какие-нибудь параметры? а все примеры показывают всплывающие уведомления про то, что сервис жив.. ну жив, толку то от него..

собственно сервис мне нужен для чего - мой виджет (неск. постов выше) нормально работает в эмуляторе, использовал таймер, а в телефоне андрод убивает мой процесс иногда сразу же, иногда через секунды 2, так что виджет перестает обновлятся (наверное об этом часто на форумах пишут в обсуждении виджетов - "у меня все работает", "у меня часы отстают")

так что сервис - правильнее вариант; сервис я сделал и запустил, но надо ему как-то передать параметры моего виджета, который бы он обновлял, когда время меняется)..



Реп: (26)
Кто подскажет как сделать чтоб в htm файле можно было увеличивать или уменьшать размер шрифта с помощью мультитача.



Реп: (806)
fat.hamster,
AIDL/бродскаст/интент - вариантов несколько



Реп: (16)
thevery, спсб, разобрался уже, а форум редактировать сообщения не дает..

радовался до сегодняшнего утра - телефон за ночь сел (при том, что отключил от убс/зарядки поздно вечером); похоже мой сервис сожрал батарейку

процесс-менеджер из астро показывает 1% загрузку процессора

ну сделано конечно пока тупо в лоб: есть виджет, в OnUpdate у него запускается сервис, все, виджет больше ничего не делает (ага, а в widget.xml у меня стоит android:updatePeriodMillis="10000" - не создает он каждые 10 секунд новый сервис?.. надо подебажить..)

сервис создает alarmManager с повторением каждую секунду, в onDestroy alarmManager удаляется, больше сервис ничего не делает

когда срабатывает alarmManager, вызывается onReceive класса, в нем я смотрю на время и если поменялись минуты с последнего раза, то ищу remoteViews моего виджета и меняю id ресурсов

т.е. есть единственное место, где хоть что-то делается (разбираю дату/время и меняю ресурсы), но срабатывает этот кусок кода раз в минуту только (хоть по хорошему надо и его переделать и обновлять минуты - раз в минуту, часы - раз в час и т.д.)

следующая мысль - останавливать сервис, когда телефон спит (потому что спит-то он бОльшую часть времени), но это опять читать надо..



Реп: (295)
сильно не пинайте
как получиьть системное время? как бы свой будильник пишу


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 23.09.23, 21:57