Радуемся анонсу второй версии андроид студии, пускаем слюни на новый градл. Сборка в несколько секунд теперь реальность. Коротко о главном: 1) Если ты учил джаву но не хочешь пилить тырпрайз до конца жизни - добро пожаловать в андроид разработку. 2) Android Studio & Java - единственный легитимный набор, теперь стал еще легитимнее. 3) Xamarin -для богатых и ебанутых виндовсопоклоников, медленно и невыгодно, но на шарпах. 4) PhoneGap - не пробовал но осуждаю, как и весь не-web на js. На самом деле изменил свое мнение, всякие поделки на js имеют место быть, и более того, в наших же интересах клепать несложные проекты на нем, так как объективно быстрее сделать юи.
Где брать инфу: Интернет-ресурсы 1) http://developer.android.com/index.html Наша библия. Документация/небольшие примеры/гайды. Но только на инглише, но это плюс. Минус в том, что это все таки документация с небольшими примерами и гайдами и искать там реализацию чего-то хоть немного сложного нету смысла. Раздел Training как раз для старта. 2) http://stackoverflow.com/ Пользуюсь чаще чем первым сайтом. Можно найти практически все. 3) Есть два вполне вменяемых русскоязычных ресурса. Для старта подходят очень даже. http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/ Второй еще и условно бесплатный. Главный плюс - это русский язык, простые гайдики, но переводы классов иногда заставляют фейспалмить. 4) http://habrahabr.ru/ - редко но метко, можно найти годные статьи по каким-то реализациям, или переводы с developer.android. Хотя чего тут объяснять. 5) https://www.udacity.com/ - в треде очевидцы говорили что есть годный курс, но я лично не смотрел.
Книги, их никто не читает, но все советуют только одну 1) The Busy Coder’s Guide to Android Development
Нормально что вьюпейджер при перелистывании уничтожает фрагменты и поздно с нуля? Как бороться, кроме вручную saveinstancestate c bundle восстанавливать?
1. ArrayList<Bitmap> bitmapList = null; 2.bitmapList.add(BitmapFactory.decodeResource(getResources(), R.drawable.%ИМЯ_ПИКЧИ%, null)); Как думаете или знаете наверняка, можно ли вытащить потом после декодирование в битмэп картинки из ресурсов, это %ИМЯ_ПИКЧИ%? Курю официальный сайт для девелоперов, но не вижу такого геттера.
И , к слову, если не люто кастомизировать эту манюшку, то она делается за 5-10 строчек. Так как мне по тз, конечно же блядь, нужно было ебашить прямо в сраную библиотеку и частично переделывать ее под себя, у меня вышло много больше кода.
>>596089 У меня таблейаут, который с вьюпеджером связанный. И когда я на какой-то вкладке, не соседние с ней доходят до ondestroyview, но не до ondestroy. Что я делаю не так?
>>596036 (OP) > Радуемся анонсу второй версии андроид студии, пускаем слюни на новый градл. Сборка в несколько секунд теперь реальность. Ого, это правда?
Ананасы, слоупок в треде, рассчитываю на ваш совет. технарь, но в проганье не очень умею (могу на джаве написать что-то несложное). Кризис, хуе-мое, понял, что нужно владеть чем-то полезным. КОроче, хочу пойти на курсы (пока остановился на МГУ, МТИ+мб возтму на курсы вышки). Так вот, это норм идея? Я понимаю, что лучше самому, но ограничен по времени из-за работы +могу отдать тысяч 20 на курсы.
>>596483 Есть мнение, что если использовать FragmentPagerAdapter, то локальные переменные фрагмента сохранятся при перелистывании. Вот из них и восстанавливай в onCreateView всё, что надо.
>>596485 Норм, бывший одногруппник походил так в своё время, потом сразу же на работу устроился, вроде бы даже в ту же фирму, что и курсы проводила, если я правильно понял.
Как называются апликухи которые вырезают рекламу и ненужные перишены или хотя бы детектят их? Хочу свое на диплом сделать. Алсо, в тред призывается анон с той же идеей который был в прошлом треде.
Мне нужно расставить на карте залитые окружности. На какой стул сесть? 1. Рисовать окружности как circle overlay. Возможно ли потом добавить popup окошко с сообщением, которое открывается как при клике по маркеру на карте к объекту overlay? 2. Или сразу забить болт и поменять иконку маркера на сгенерированный bitmap в виде залитой окружности?
В переопределенном onTouchEvent, оказался доступен какой-то геттер getScaleX(); Как узнать чей он? Скалирование чего он вернёт? вьюхи/канвы? Пистос просто. getX и getRawX чем отличаются? В каких ситуациях они применительны?
>>597600 Наведи на него курсором и нажми Ctrl+B (если в студии): откроется соурс код и ты сможешь посмотреть, из какого класса он вызывается. Вроде бы, это метод для View.
До сих пор на студии 1.3.1 сижу, если обновлюсь до 2.0 заимею ли я какие-то проблемы с проектом? Придётся ли ебаться в последствии с настройкой каких-нибудь маняфестов?
Сразу ещё вопрос по обработке "щипка", без гастера. Каким образом получить первые координаты касания пальцев(1), так чтобы потом во время их скольжения(2) не переопределить самым последним значением их положения на экране(3)?
Господа, дайте тестовое задание на джуна, при выполнении которого почти любой работодатель скажет: "ебать, берем его срочно, пока он в другую контору не пошел". А то ничего не понятно, одни говорят, что всякие хэлло-ворлды уже норм, а другие говорят, что надо десяток хороших приложений в плей маркете, что бы тебя хотя бы бы на собеседование позвали.
Как скалировать канву, чтобы точка между пальцев так и оставалась между ними? Ебучий андруид смещает её каждый раз в угол как я понял. В интернетах примеры с использование готовых методов каких-нибудь битмэпов, всё не то. Это же, блин, такая нужная и часто используемая вещь почему нету какого-нибудь элегантного решения? 4й час ебусь уже.
>>596395 Если собираешь не первый раз и изменил только xml, то у меня на и5 4-7 секунд. Первый раз так и остался ультрадолгим, а если внес изменения в код, то 20-30 сек.
>>598058 Чувак, почему мы за тебя должны думать? >>597734 перечитай внимательно контент по ссылке, там написано, почему эти пермишшены не сгруппированы. Оффтоп: ты либо студент, либо без вышки. Потому что ты, похоже, учиться и искать информацию не умеешь.
Знающие аноны, дошел в джаве до мультипоточности, все предыдущее более-менее понял, есть ли смысл вкатывать в андроид? В последнее время как-то стала удручать идея, что ее, офис, хуе-мое.
>>598750 1. Делаешь запрос в яндекс или гугл с координатами или адресами начала и конца 2. Получаешь жсон со списком координат 3. Парсишь координаты, раскладываешь их в массив 4. Строишь по этим точкам PolyLine на своей карте.
О, спасибо анон, начну делать. Я ньюфаг, но мне кажется это больше подходит для стажера, особо сложного ничего нет. Или это таки достойное задание для джуна?
>>599311 Это три треда назад вкидывал анон, как задачу на джуна. Кстати, если интересно, то я сейчас трудоустраиваюсь на андроидоджуна, самые популярные вопросы про конкретно андроид: лайфцикл активити, основные компоненты приложения и подобное говно энтрилевела. По чисто джаве любят спросить коллекции и конкарренси ещё. С другой стороны, эту муть я знал ещё год назад, но до сих пор так и не трудоустроился. На одном из собеседований мне сказали, что следует иметь задачи в гуглплее.
А почему до сих пор не устроился? И не совсем понял, что значит "иметь задачи в гуглплее"? В смысле иметь гуглплей аккаунт и там выложенные свои приложения? И что туда новичку выкладывать, ну я допустим могу заплатить за аккаунт и выложить туда какой-нибудь погодный апп или змейку, но их же тысячи таких. Не лучше ли на гитхаб это выложить и показать? Там хоть код можно посмотреть.
>>599329 >А почему до сих пор не устроился? Хз, я в принципе, не совсем гладко все собеседования проходил. То на конкаренси запорюсь (я его и не знаю, сейчас прохожу на курсере курс по андроид конкарренси), то забуду, в чём выражается полиморфизм (ну это вообще сукпздц, я его, конечно, знаю и применяю, но вот суть тогда за ненадобностью забыл). Гитхаб есть, но смотрели его только на одном собеседовании из 4, похоже, лол. На остальных: "а у вас есть приложения в гуглплей? нет? ну блин". Вот последний месяц потихоньку делаю приложение для гуглплей, шоб поддержка с 9 версии, да с материал дизайном, да и ORM ещё запилить вместо ванильного провайдера, и ещё чтоб по MVP (кстати, по паттернам тоже часто спрашивают, в рот ебалъ, это, как по мне, просто пиздаболия сплошная вместо реальных знаний, откуда я могу иметь нормальные представления об MVP, если я на нём полтора проекта сделал и даже от MVC не отличу?). Кстати, ещё спрашивают иногда про твой опыт в системах багтрекинга, типа редмайн или jira. Я всегда на таких вопросах делал грустное лицо и отвечал: "не знаком, не состоял, нет, нет, прочерк". А откуда у тебя инфа про то, что за аккаунт гуглплей надо платить вообще?
>>599361 ну охуеть теперь, платить деньги за то, чтобы тупо выложить апшку без надежды, что её хоть кто-то скачает. Вот ведь пидоры, однако, выбора нет.
Google Play Developer account will cost you $25 (one time).
>кстати, по паттернам тоже часто спрашивают Вот от этого припекает, вроде и понимаю, что такое MVC и даже приложение разбирал по нему написанное. Но как садишься что-то свое написать, так мысли только "Боже, какое MVC, тут бы хоть просто заработало с моим кривым кодом", а надо следовать еще и паттернам.
>>599407 Ага, он самый. Я сейчас три лекции посмотрел, в первой просто общая инфа по джавапотокам, во второй про джавасемафоры и андроидопроект небольшой, в котором нужно немного кода дописать, чтобы он многопоточно заработал, в третьей уже рассказывается про андроид-параллелизм. >Кстати, а можешь свой гитхаб дать, посмотрю насколько я еще готов/не готов, да и просто интересно. Извини, но во-первых дианон, а во-вторых всё равно ты не можешь по нему судить о своей готовности, ведь всё-таки я даже не джун.
>>597622 Недавно предложило обновить до 1.5 — вообще ничего не правил, правда теперь public в интерфейсах ("public void methodName()", пишу по привычке) подчёркивает как ненужные, но на это похуй.
>>599117 Таким занимаются только самые извращенцы. Из тех же, что и на замарине пишут. >>599316 > что следует иметь задачи в гуглплее. Как пруфануть то, если приложения не под моим акком выкладываются, а под акком заказчика?
На днях видел в каком-то треде про мобильный гейм-дев. Помню что сказали, мол по нему много вакансий, но это ад. И уже не первый раз такое слышал. Но нихуя не сказали почему. Ну ладно если НЕ мобильная разработка игр, там пугают жутким матаном. Но в мобильной же особого матана нет. Как-то смотрел гайд по написанию клона Flappy Bird c использованием libGDX. Ну всякие векторы, ускорения и радианы немножко пугают, но не так что бы совсем. Тем более, насколько я понял, в этой библиотеке(думаю и в аналогах) это все упрощенно и должно хватить повторения школьной программы для понимания. Так что в в разработке ведро-игр такого ужасного?
>>599593 1) Геймдев практически всегда - это сплошные овертаймы за смешную зарплату. 2) Если в серьезном геймдеве хотя бы есть интересные задачи, то клепание мобильного треша - это дно уровня веб-параши на ЦМС.
>>599598 А где ещё в программировании есть интересные задачи? Интересует что-то хорошо оплачиваемое и востребованное. Я вот думаю, сейчас мобильные технологии быстро развиваются, и если ты хорош в андроида или иосе, то найдёшь себе интересную наукоемкую задачу например, написать байтоебский фреймворк, чтобы по блютузу с мобильника управлять кофеваркой
>>599642 Ой как же заебало это слышать. На айосе зарплаты больше и тд. Да не пиздите блять, алсо, всегда можно перекатится, принципы мобильных платформ схожи.
>>599316 Лайфцикл активити это ладно, меня начали ебать по лайфциклу фрагмента, и я внезапно обосрался на всяких онкриейтвью, онактивитикриейтед, так как не помню очередность. Собеседущий сказал что онактивитикриейтед редко используется, но я задвинул что от задачи зависит, иногда же нужно активити дергать и тд. Еще по сервисам прошлись, спрашивали про стикисервисы, я с ними не работал, и признаться вообще забыл что такие есть, но с горем пополам вытянули из меня ответ. Ну а еще немного по флагам интента, по бекстеку еще немного знал, а там вообще пиздец. Это то на чем обосрался. И тем не менее прошел, правда не пошел туда, да и зп просил чисто на джуна.
>>600027 1. Каким образом первый пункт делать? Тут есть 2 варианта: через directions api полуяиьь точки и наебошить polyline на карте. Или вызвать гуглокарты с правильными параметрами и получть тоже самое.
>>599642 Да там нехватало спецов в 2012. Айос выгоднее будет для инди разработки. А спецов не хватает на винфон. Но там спрос сам по себе существенно меньше, за пределами дсов можно оказаться ненужным
>>600120 Я делал через GoogleApiClient и через LocationRequest первый пункт. Второй пункт и беру LatLng через первый метод и рисую линию, как сказал >>598756 Дается трудно, каждый шаг гуглю, потому что еще с картами не работал и это моя первая встреча с ними. Если хочешь могу код скинуть.
>>599316 >лайфсайкл активити ну в общем-то на самом деле правильная штука — оно может быть всего одно в приложении (потому что создавать активити — это одна из самых дорогих задач в андроиде), но там в этом активити может быть дохуя кода — сам долго сидел, когда надо было сделать так, чтобы если андроид убил приложение из-за нехватки памяти, то оно открывалось не на том экране, где его убили, а на начальном >основные компоненты приложения это про вьюшки что ли? ну 95% приложений на ресайклервью/листвью, если старые, построены.
Проблема тестов в том, что там спрашивается иногда всякое дерьмо типа "final class", которое просто не используется.
>>600253 >то оно открывалось не на том экране, где его убили, а на начальном это таски что ли? а я про онкриэйт-онстарт-онрезьюм-онпауз-онстоп-ондестрой >это про вьюшки что ли? активити-сервис-провайдер-ресивер
>>600258 нет, это именно про онкриейт и так далее. Сценарий: есть девайс на четвертом андроиде с 512 мегабайтами оперативки. Сначала открываешь своё приложение (делал по схеме "одно активити - несколько фрагментов"), залезаешь на экран подальше, потом сворачиваешься в браузер и там открываешь пару-тройку жирных вкладок. По возвращении андроид попытается вернуть тот экран, который был, а мне нужно было сделать так, чтобы вернул изначальный (то есть ещё очистить бэкстэк). onDestroy и onTrimMemory в этом случае не отрабатывали, там вообще ничего не сигнализировало о том, что приложение выгружено из памяти, довольно интересная задача.
>>600253 > Проблема тестов в том, что там спрашивается иногда всякое дерьмо типа "final class", которое просто не используется. Как это не используется? Или я не очень тебя понимаю.
>>600272 Я вот ни разу не сталкивался с ситуацией, когда был бы нужен запрет наследоваться от класса. final object ещё хотя бы для синхронизации нужен, а вот final class — ни разу не пригождался.
>>600266 Если бы оно правда выгружалось из памяти, то оно бы и возвращало изначальный, не7 Если процесс форсированно убивается, то как андроид сохранит инфу о состоянии активити? Не понял затупа, короче.
>>600321 Я не разбирал глубже как это работает, но приложение действительно даже спустя миллион запущенных будет пытаться открываться с того экрана, на котором ты его свернул.
>>600328 Ну я хз, вообще никогда не видел, чтобы приложение убивалось системой из-за нехватки места, но ведь тут по логике надо смотреть. Если приложение стартует не со стартового экрана -> у системы осталось состояние о нём -> процесс приложения не был убит -> поведение приложения не будет отличаться от того, как если бы ты его свернул или развернул (и похуй на жирные вкладки), а тебе, по сути, всего лишь в onStop второй активити нужно finish() вызвать и ещё таскаффинити в манифесте правильный поставить, чтобы первая активити тоже пересоздавалась.
>>600331 >вообще никогда не видел С кем я тут сижу, вы наркоманы блять? Скачай апликуху для чистки памяти, и почисти юи память, она выгрузит все апликухи, вот тебе и эмуляция неххватки.
>>600349 Так что нам сделать? Удалить файнал класс нахуй потому что ты его не используешь? Ты про варарги слышал например? Тоже ненужны? Хватит оправдываться. Вопрос с файнал классом - збс и нужно его знать. Говно задачи когда у тебя задротская херь типа какими символами можно называть а какими нет. Подобный вздроч вообще не имеет право на жизнь.
>>600354 Она должна запускаться с активити на которой была скрыта, не пизди.
ОнСейвАктивитиСтате нужно для сохранения состояния теперешнего. Если ты там вывел статик текст, то само собой ненужно, а если хуярил какую-то логику с выбором из листа например, то нужно.
>>600356 >что это связано с его иммутабельностью Собственно файнал класс - делает класс иммутабельным. А так я читал что для защиты что-то там. На это уже вроде как всем похуй
>>600361 Не пизжу, чувак. Запустил прогу, перешёл на другую активити, свернул, рубанул очисткой. Открываю заново - с нового листа. Проверил без очистки - остаётся на том же месте, где и было. У нас разные андроиды, похоже.
>>600253 >ну в общем-то на самом деле правильная штука — оно может быть всего одно в приложении (потому что создавать активити — это одна из самых дорогих задач в андроиде) Хуйня кстати, на фрагментах работать такое говно что страшно, постоянно делать проверки на онатач, постоянно хуярить эти чайлд фрагменты и тд. В основном вижу как делают одно активити для основного функционала, т.е. с дроверлеяутом и тд. А всякие сайд переходы на других активити. С фрагментами везде можно дико обосраться. С архитектурой.
>>600373 Две активити, есть свой сурс код. Lenovo P70, 4.4 киткат, китаец, но благородный и с усами. Алсо, есть инфа о том, где сохраняется инфа о состоянии приложения в момент убийства процесса, как ты пытаешься доказать?
>>600374 Хотел тут описать простыню что ты долбоеб и не полез в документацию, вставить ссылки и тд. Но поверил тебе на слово и полез гулить. В результате наткнулся на интересную штуку, если я правильно понял то что нашел, то андроид не умеет убивать активити сам, он убивает весь процесс. И, следовательно, все активити в нем. Если же взять во внимание твои слова, то становится логичным что андроид не запоминает на каком активити остановилась прога. Но если посмотреть на моем телефоне как у меня очищается бекстек апликухи при пересоздании активити, т.е. только последнюю активити он и запоминает и показывает ее при входе в апликуху. Короче говоря вопрос не такой легкий как казалось, буду копать глубже но уже завтра.
>>600372 По идее, надо стремиться к уровню телеграма, ящитаю — там чуть ли не все вьюшки — кастомные, со своим onDraw и onMeasure + своя реализация фрагментов (и тоже "одно активити — несколько фрагментов", по сути)
>>600409 Телеграм довольно простая реализация на самом деле. Не везде можно обойтись одним активити мне кажется. >там чуть ли не все вьюшки — кастомные, со своим onDraw и onMeasure + своя реализация фрагментов Пруф. Особенно про фрагменты.
>>600410 Блять, я не понимаю, если оно действительно не запоминает активити на котором было при чистке процесса, то что сука происходит когда у меня иногда бекстек на старых апликухах чистится?
>>600425 Очень просто: больше контроля (пример: закрытие целого ЭКРАНА свайпом влево — я вот хз, можно ли это простыми фрагментами сделать, но представляю, как это сделать, если накладывать вьюшки одну за другой) + возможно, так приложение меньше весит возможно, ещё какие-то причины, можно ещё лекцию Степана Коршакова про оптимизацию Telegram S погуглить — про вьюшки там тоже говорится.
>>600456 Он не работает в телеграме уже давно (пилит свой Slack с шифрованием и локально устанавливаемыми серверами), официальный клиент - от победителя первого конкурса Николая Кудашова.
>>600372 Поддвачну. Фрагменты стоит юзать онли там, где без них не обойтись. Другое дело, что гугель зачем-то подталкивает разрабов к повсеместному юзингу фрагментов, вводя материалдесигн с его новнмодными навигейшн дроверами.
>>600425 По сути, у него фрагмент - это некий фасад для удобного управления кучкой вьюх на экране и замещения лэйаутов. Профиты очевидны: нет анальных привязок к циклу стандартного фрагмента, нет лишней ебли с бэкстеком и ретейном.
>>596250 Поясни, что не так в массиве битмэпов? Разве размер его не устанавливается при создании в соответствии с размерами пикчи в него конвертирующейся?
>>600877 Битмапы это картинки по сути, перекодированные. А теперь представь сколько занимает памяти такой массив с 10 картинками например. Если тебе покажется что мало, то вспомни сколько будет занимать массив с 10 объектами обычными.
>>600495 Я не думаю что у него там стабильная зп в такую суму прилетала. Алсо, была мелкая конкуренция, вот и результат, та и чувак видно старался как черт.
Что на дипломную взять? Думал может распознавание образов, но что-то боюсь что обосрусь от количества инфы и сложности работы алгоритмов. Думал брать оптимизацию работы и рендеринга в ведроиде, но нинаучно.
Чому при скалировании канвы, нарисованная сетка(с помощью линий) средствами битмэп, НЕКОТОРЫЕ ИЗ НИХ ПРОПАДАЮТ. Надо какие-то параметры рендеринга настроить наверное о которых я не знаю?
>>601435 > 12 мб лимита на бомжефонах не хочешь? Щито? Это где такое? В 2016-то году? >>601362 Нихуя это не дно. Зависит от задачи, конечно, но хранить массив битмапов допустимо.
Трям, возвращение дизайнобляди из восьмого треда. Не могли бы вы пояснить за отличия CardView от ListView, а конкретнее - за преимущества первого перед вторым Факт того что можно пихать имагу в дефолтный cv за преимущество не считать ибо всегда в любом проекте приходилось кастомить и только имагой с одним textview дело не обходилось
>>601493 Недели четыре - пять неустанной дрочки тестовых проектов. Найди где-нибудь нормальные тз и попытайся выполнить один в один первый попавшийся ( что бы там ни было ). Через 3-4 выполненных идеально проекта будешь знать достаточно. Желательно конечно чтобы они были разноплановыми
>>601200 если это три блядских полоски в тулбаре - то да. Мне iosники как-то раз скинули имаги блять, ни одна не сжата, каждая мегов по 10. Grow heap полетел блять... Так к чему я это, эти суки еще и три полоски сраные эти скинули чет порядка того что ты сказал, они блять как два тулбара размером были на планшете
>>601634 Да хоть на кикстартере среди приложений, детальное тз можешь сам накатать, а идею спиздить. Вариант второй - по описанию проекта на гите, по скринам в дриббле, да блять, дохуя ресурсов то. Тот же хабр ( находишь реализацию на другом языке и прикинув, что требуется ебашишь )
из фрагмента не могу получить доступ к активити, а именно из onCreateView, после уже в других классах фрагмента всё получается. В примерах у людей всё работает. Это как-то от версии API зависит или что?
>>601700 Собственно код: public class MainActivity extends Activity { @Override public void onCreate( Bundle savedInstanceState ) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
public class myFragment extends Fragment { (ImageButton) getActivity().findViewById(R.id.imageButtonMove)).setAlpha(0.5f); }
>>601713 Ты фрагмент-то инициализировал? В чём проблема, NPE на getActivity()? А ты уверен, что на него, а не, например, на findViewById? %кстати, скобку при копипасте возле каста в ImageButton всё равно проебал%
Аноны, делаю плеер со списком воспроизведения, при нажатии на любой элемент, у него отображается сикбар, который динамически обновляется, и соответствует воспроизведению. Сам плеер реализован в сервисе. Есть 2 стула для реализации: 1) Захуярить все в адаптере, но тогда адаптер будет лезть в сервис, и вьюхолдер тоже должен будет лезть в сервис (нужно обновлять свой ползунок при воспроизведении) 2) Сделать адаптер онли для отображения элементов, а логику, связанную с плеером, вынести в onscroll. Какой из велосипедов лучше, с точки зрения архитектуры?
>>601912 Сервис шлет Broadcast. Через LocalBroadcastManager. Ловим его в активити/фрагменте со списком. Вызываем соответствующий метод адаптера для обновления ползунка.
>>601468 > Щито? Это где такое? В 2016-то году? Берешь любой телефон / планшет с 256мб оперативки и получаешь. Я таких уже два юзал, нокиавский андроидофон и какой то ебанный эксплей планшет за 3к. На обоих 12 мб и больше не выдавало.
>>601928 Дык это всё понятно. Суть в том, что >Вызываем соответствующий метод адаптера для обновления ползунка. Ползунок фактически, есть у каждой вьюхи, а обновлять его можно хэндлером, таймером и пр. Соответственно, там тоже будет велосипед со скроллами, ибо нужно будет отслеживать момент, когда вьюха уходит с экрана, и отключать хэндлер. По идее, выход - держать хэндлер во вьюхолдере, и отключать/включать его при прорисовке. Но тогда и адаптер, и холдер будут иметь ссылки на сервис, который может быть внезапно уничтожен системой, и пересоздан
>>601976 > Берешь любой телефон / планшет с 256мб оперативки и получаешь. В 2016 году? Ты как, с нашей планеты? > На обоих 12 мб и больше не выдавало. И сейчас они ни одно приложение просто не потянут в таком случае. Сомневаюсь даже, что на них есть что-то старше 2.3.7. Это просто не серьёзно.
>>602087 > Понятия не имею как это в ошибках посмотреть В описании исключения пишется, что невозможно вызвать метод или считать/записать поле у null-объекта (название метода/поля прилагается), чего тут не уметь?
>>601991 Я свои приложения тестирую на сониэрикссонах 2011 года и стараюсь додрочить до такого состояния, чтобы как минимум скроллинг не тормозил, а ещё лучше — различные анимации. Там, конечно, не 256 мегабайт, но 512 в 2016 году — это тоже пиздец в плане юзабилити.
Хочу в приложении сделать анимацию материалдизайновскую, чтобы вьюшки летали и кнопки реагировали, ну вы поняли. Беда в том, что никогда с анимацией не работал, и не знаю, что бы выбрать такого, чтоб и апи низкого уровня поддерживала, и материалу удовлетворяла. Property Animation, View Animation, Transitions Framework, какие-то сторонние либы? Анон, помоги.
Имеется джва десятка чекбоксов. Нужно каждый проверять, можно ли как-то обращаться к ним по id не через имя, а например checkbox+1, как бы обращаясь к следующему по порядку? Где-нибудь int'овское значение ID можно самому установить или хотя бы посмотреть?
>>602763 Я их в xml уже прописал, что делать-то? Спрашиваю можно ли где-то узнать их реальные значения? ведь checkBox666 это лишь строковый идентификатор.
>>602937 У тебя чекбоксы по порядку внутри viewGroup идут, так? Так и обращайся к ним через v.getChildAt(), это быстрее, чем findViewById и никаких идентификаторов не надо.
>>602951 У меня кроме них ещё ведь и другие элементы, между ними в xml по порядку image, например.
Алсо, в Bundle я кидал массив примитивов и удивился, что через него ссылка передалась на этот массив, я-то думал в нём(в Bundle) новый экземпляр создаётся. А что тогда с обычными НЕ массивами примитивов, они по значению передаются или тоже по ссылке? Мне важно знать, чтобы ошибок сейчас не наделать.
>>602625 Бамп вопросу, какой фреймворк для анимации в андроид сдк сейчас самый мощный и может сделать закос под типаматериал (чтоб вьюхи с акселлерацией из-за угла экрана выезжали, чтоб кнопки по нажатию прогинались и т.д)?
>>603117 Не знаю, где там Абу спам увидел, смотри пикрилейтед. Также тебе, скорее всего, не будет лишним изучить ObjectAnimator, который изменяет конкретный параметр (например, прозрачность)
Аноны, помогите советом. Мне нужно увидеть процесс установки на 5-м Андройде и на 6-м, но в распоряжении только смартфон на 5-м. Можно как-нить запустить на пекарне эмулятор какой-нибудь с 6-м ведройдом? Искал в гугле, но толком ничего не нагуглил (только туллза 2010-го года с эмуляцией андройда 2.3)
У PlaybackParams есть setSpeed. Так вот, какой диапазон значений для него валиден? Экспериментально - [0, 8) вроде. Но это какая-то хуита, 8 у всех нормальных плееров есть, а 0 - это блять 0. По сути делает паузу, но не ту пауза которая пауза, а просто не играет. Если комбинировать нормальную паузу и скорость 0 видео со звуком начинают рассинхронизироваться.
Смотрю всякие обучающие приложения и семплы от гугла. Там весь код почти во фрагментах. В каждое активити запихнут фрагмент, даже если там совсем немного кода. Мне не совсем понятно почему не отобразить это просто в активити. Это реально никак не сказывается на работоспособности приложения?
>>604444 Чтобы ты привыкал к использованию фрагментов. Потому как в серьёзных проектах без них ну никак! Да и в чем тога смысл иметь многозадачную ось и вообще в многопотоковом программировании?
Как у вас тут хорошо в андроиде. Взял жабу, взял андроид студию и пошёл учить и пейсать. А в вебе пока стал джуном по пхп - от тебя ушла девушка, все рабочие места заняты и тебе пишет hr и предлагает зарплату в 10000 рублей для Москвы.
Анон, пилю учебное приложение, подскажите. Суть такова, делаю запрос через асинктаск к moviedb, получаю json в котором 20 популярных фильмов. Мне надо отобразить постеры к ним в gridview. Json содержит путь к постерам которые в формате jpg. Получается мне после первой асинктаски надо запускать другую, которая уже вытащит постеры по путям, которые я получил после выполнения первой асинктаски? Так или я что-то намудрил?
>>604811 Так, но советую пользоваться для загрузки сторонними библиотеками, как указал >>604860-анон. У меня был такой случай, когда асинктаск не мог загрузить картинку по url стандартным потоковым способом (это была пнгшка, а там, как я понял, нужно сначала метаданные картинки получить, а затем уже загружать и надо пердолиться). Пикассо тоже не помог, а вот UniversalImageLoader отлично справился. Запускай загрузку с помощью либы в onPostExecute или после парсинга json'а и будет тебе счастье.
Ух как меня вчера разорвал FacebookSDK. Делаю сапортный фрагмент для логина, что бы не пихать onActivityResult у Activity обработку и еще где-то пизданутый листенер держать. Результат: саппортный фрагмент не получает onActivityResult, нативному норм, активити норм, где справедливость блять.
>>604811 Там действительно не всё так просто. Хочешь разобраться сам — читай вот эту статью и правь под свои нужды: http://developer.android.com/intl/ru/training/displaying-bitmaps/cache-bitmap.html Или юзай готовые библиотеки, ссылки тебе выше дали. Ещё такой хинт: в RecyclerView загружать лучше не из onBindViewHolder, а из onItemAttachedToWindow — так пикчи не будут задваиваться.
>>605107 Нагуглил что это ViewGroup, но он не прожевывается в моём recyclerview : android.view.InflateException: Binary XML file line #18: Error inflating class android.view.ViewGroup .
>>596036 (OP) Аноны, эмулятор SDK входит в вечный бут при запуске, пробовал Андроид 6 и 5 - все равно. Просто анимированная надпись Android и все, как запустить? Помогите.
>>605600 Нет, просто установил android studio, и пробовал потом разные версии в SDK мену. Ставил по инструкции с сайта с котами, путь прописывал в Patch.
>>605625 >перепрошился. А при чём тут прошивка какая-то вообще? Речь же об эмуляторе на компьютере идёт, если я правильно его понял. >>605207 У меня тоже такая проблема была на маке. Решилось, как и всё от гугла, как-то само либо ожиданием, либо перезапуском, либо переустановкой (целиком студии или эмулятора, не помню уже).
Анон, устроился в контору стажером. И тут меня заставляют ебаться не только с андроидом, но и с бэкендом в том числе, а там даже не джава. А в будущем могут вообще перекинуть на несвязанные с андроидом проджекты. Стоит ли приседать на этот стул? Я как бы за специализацию больше.
>>605830 Нет, если ты не получаешь от бэкенда удовольствия. Если бы ты и его мог написать, и приложение, то, скорее всего, работал бы над своим проектом. Тем более тебе явно не платят и за работу бэк-энд разработчика, и за приложения "под ключ", это овердохуя.
>>606230 >4 гига озу >хз, мой ноут с 6гб забивается под завязку, когда шиндовс 7 + студия + файрфокс + эмулятор. Эмулятор студии около 1.5 Гб оперативы сжирает. Ящитаю, что он просто не может у тебя памяти выделить под себя.
>>606230 И че сама студия пишет в консоли? Двачую версию про нехватку ОЗУ, пробовал запускать Студию на ноуте с 3гб, вырубив при этом все, что можно, но все равно не запустилась. Алсо, если тебе прям край, то можешь попробовать поставить Линух на флешку или другой жесткий диск и работать из под него. Там все шустрее будет
>Any permission can belong to a permission group, including normal permissions and permissions defined by your app. However, a permission's group only affects the user experience if the perimission is dangerous. You can ignore the permission group for normal permissions.
Не могли бы мне помочь вникнуть. Как я понял, все опасные разрешения делят на группы, а на остальные (нормальные и те, что от приложений) как бы по хуям, но все равно делят(?).
>>606488 Честно говоря, не очень понял все равно. Меня больше вот эти строки интересуют:
>However, a permission's group only affects the user experience if the perimission is dangerous.
В той статье, что ты кинул тоже до конца не могу разобраться: >A permission that the system grants only if the requesting application is signed with the same certificate as the application that declared the permission. If the certificates match, the system automatically grants the permission without notifying the user or asking for the user's explicit approval.
Это как вообще? Я уже и гугл облазил весь, но с моими знаниями инглиша, я в эти строки никак въехать не могу. Я не хочу особо капать на мозги анонам, но если не сложно, не объясните, пожалуйста?
Помогите ньюфагу. Пытаюсь разобраться с SQLite, скопипастил проект из интернета, начинаю переделывать под себя. И вот какая трудность возникла: я хочу, чтобы каждому пункту таблицы соответствовала своя картинка, в зависимости от категории. По типу, если категория "белый", будет белый кружок, иначе черный. Ну и выводить в listview это - картинка+название. И не могу понять, где и как это присваивать/выводить. Сейчас сделал так, что картинка - отдельное поле таблицы, но как его выводить на imageview? В проекте выводилось с помощью SimpleCursorAdapter, но мне уже это не пойдет, как я понимаю.
>>607974 Да, есть - на квалкоммах это, например, Adreno (переставишь буквы - и поймешь, у кого купили). Да, здесь OpenGL ES, обращаться к которому можно как из явы, так и из сишного кода (NDK).
Анон, как сделать динамическую смену тексту в текствью, где текст зависит от восьми эдиттекстов? То есть, я меняю текст в эдиттекстах, и в текствью он должен моментально меняться.
>>606307 Правильно понял. У всех пермишенов может быть группа, но только для dangerous она имеет значение. Ибо если однажды в процессе работы приложения, dangerous пермишен запрашивает у юзера разрешение - оно будет запрашиваться для всей его группы, и подтверждаться тоже. И если в будущем, приложению понадобится другой пермишен из той-же группы - оно уже не будет запрашивать разрешения, т.к. к группе доступ есть. Всё это актуально для версий 6+. Для остальных, пермишены запрашиваются при инсталляции, и если у пермишена есть группа - запрашивается вся группа.
>A permission that the system grants only if the requesting application is signed with the same certificate as the application that declared the permission. If the certificates match, the system automatically grants the permission without notifying the user or asking for the user's explicit approval. Ну типа, если приложение, запросившее пермишен подписано тем-же сертификатом, что и то, которое его объявило (т.е., пермишен прописан в его манифесте) - доступ даётся без всяких запросов юзеру.
Доделал своё поделие для портфолио, которой так или иначе пилил полтора года (по нормальному делается за 10—20 дней). Буду благодарен, если кто-то посмотрит, оставит фидбек. Ссылка: https://play.google.com/store/apps/details?id=com.destiner.pocket_reminder Кстати, приложение в сторе висит уже два дня, но не ищется ни по названию, ни по ключевым словам. Кто-нибудь знает, в чём может быть дело?
>>608330 Какие то иконки больно крупные на скринах. Ты же увеличивал стандартные 24dp иконки? Шрифт больно жирный какой то, сделай лучше точь в точь как в гуглокалендаре.
>Предпочтение универсальному кандидату, пишущему и под Android, и под iOS (Ojective C) Анчоусы, о чём это они? Плюсы видел, но чисто на Си, как Моцорд хуярить. Не понимать.
>>608330 а что ты там демонстрировал то ? Умение расставлять view-элементы ? Аццкий вызов кастомного диалогового окна ? Как бэ, тут работы на часа три ( ну, 4-5 если разметку под разные девайсы ваять нужно )
чё делать если в биосе материнки нет опции по включению "virtualization technology" и соответственно не ставится HAXM ?? материнка msi 870-C45(FX) V2 (MS-7715). проц
>>609566 >>609620 Даже в ДСах хуй найдешь, а андроид джуны тем более никому не нужны, на западе и так перенасыщение мобильных девелоперов. Надо вкатываться просто в джаву
>>609425 Поддвачну этого. Сейчас ценится опыт сетевого взаимодействия, да ещё и с апихой какого-нибудь известного сервиса. Ну а так, скорее-всего, у него там есть БД, какой-нибудь сервис висит.
>>609382 Вот вполне реально, кстати. Даже я, имевший небольшой опыт с тырпрайзной джавой (пару месяцев), очень долго тупил, как же сделать её с минимумом велосипедов, ШОБ КРАСИВО. Архитектуру надо придумывать до мелочей, учитывая множество подводных камней - этого нету Другую апликуху запилил за ночь очень давно - но тогда получается архипиздец в плане организации кода.
>>609945 Везде есть перенасыщение. Суть в том, что в мобайле в 100% вакансий требуется опыт, но "опыт" в мобайле - это ссылки на маркеты/аккаунт апворка.
Вот, что было написано мной за 5 дней к примеру. ( если хотите - чуть позже могу куски исходников привести ) В play маркете набейте "чугунное яйцо" Немного халтурно, но время жало
>>610184 Уже переходы на личности делаешь? Ладно: если ты пишешь такое за 3 часа, то ты пиздабол каких поискать, иных вариантов не существует. Я не смотрел приложение, сейчас глянул — там используются некоторые возможности, всё проще, чем я представлял. Неделя тут и правда много, но 3 часа — невозможно, это цифра с потолка и пустой выебон.
>>610189 А ты предоставил что-то, что отменяет твой слив?
Я посмотрел твою приложуху, её за 5 дней реально сделать, но речь не о твоей проге, а о проге того анона. Более того, я не вижу в твоей проге чего-то такого, из-за чего её создание займёт в 10 раз больше времени по твоим представлениям.
>>610192 А почему там что-то должно быть сложное? Что сложного в твоей проге, например? Это дело техники, я не учитываю время на изучение. Ты садишься и проектируешь, пишешь, делаешь разметку, тестируешь, отлаживаешь. И за 3 часа ты это не сделаешь.
>>610194 как минимум неплохая для подобной аппликухи производительность и огромное количество разметки. Большое количество кастомных элементов. Поддержка различных экранов, фильтр свопов вправо и влево
>>610195 разметку сфарганить это и есть сложное, если она не по гугловскому материалу. Если же по нему, то все делается за несколько часов и минут 15 на тест на паре устройств
>>610197 И это не потребует в 10 раз больше времени, няша. По крайней мере, в данном конкретном случе, т.к. в том приложении, помимо также не-дефолтного интерфейса, есть ещё некая логика работы и использование множества компонентов. >>610198 > разметку сфарганить это и есть сложное, если она не по гугловскому материалу. Нет, не сложное. Я бы ещё поспорил о целесообразности такого метода т.к. это пиздец вованство, но даже если по материалу делать, приходится делать что-то кастомное и ебаться из-за разной хуйни. > Если же по нему, то все делается за несколько часов и минут 15 на тест на паре устройств Зависит от приложения, конечно, но то приложение нельзя оценить в 3 часа, это выебон и пердёж в лужу.
>>610207 Я не он, но ты еблан, сори уж. Это первое приложение человека. Ему для начала нужно почитать, что такое материал десигн, прежде чем его лепить. Тоже самое касается всего остального.
Опыт у всех разный, и если ты клепанул десяток приложений и сходу представляешь, как такое реализовать до мелочей - все зависит от скорости набора кода.
Ананасы, как цивилизованные люди передают коллекции между активитями и фрагментами? Я засовывал в строку Json и дальше через интенты и бандлы. Неужели нет ничего покрасивше?
>>610207 Да, очень давно этим занимаюсь. Продолжаем переходить на личности? >>610210 То есть то, что ты мне в первый раз ответил только через 14 часов — это ок, а стоит мне отлучиться на полчаса, так это уже слив? Ммм.
>>610198 >разметку сфарганить это и есть сложное, если она не по гугловскому материалу. Я ньюфаг, обьясните, чем гугловский материал выгодно отличается в сторону простоты от старых версий? Ну, там кардвью вместо фреймлэйаутов, ресайклер вместо лист, фаб, тулбар, пэпербатн вместо обычной, эвалуэйшн, но в чём конкретно упрощение? Или вы имеете в виду, что раньше вы тени пердолили вручную?
>>610384 А как в ресайклервью реализовать контекстное меню без особого пердолинга, например? У меня получилось только с передачей коллбэка для фрагмента, но там MenuItem всё равно нулевой и нужно сделать было дополнительную еблю с определением, какой именно элемент нажимается. Да onClick реализовывать в самом холдере приходится, что есть говно. У меня по клику навигэйшн дравер закрывается, если ListView использовать, то там уже в ListFragment есть onItemLickListener, можно работать с дравером прямо из фрагмента. А в ресайклере нужно снова или коллбэки, или делать адаптер нестатическим классом. Плохо зделали, тупо, листвью в плане удобства программирования пока что гораздо лучше.
>>610431 есть же эмулятор с SDK идет, тормозит, но работает. А вообще нужен девайс. Рекомендую Galaxy S3 из старых, недорогих, но до сих пор актуальных.
Есть 2 стула: на одном Java энтерпрайзная, на другом Android с материал дизайном. На какой сядешь, на какой мать посадишь? Алсо, ещё есть табуретки с руби и питоном. Про стулья опыт есть, хоть и не большой. А табуретки 1 раз вижу. Стоит ли выкатываться со стульев? Или сесть уж на один из них?
Дали задание сделать курсовой проект на Андроиде. Недолго думая скачал Android Studio. Тут-то мне знатно пригорело. В старом-старом C++ Builder 6 хочешь вкладки - просто поставь элемент на форме и всё заебись. Хочешь сделать список? Вот тебе список, заполняй, как хочешь. Хочешь таблицу? Нет проблем, у каждой клетки есть свой идентификатор, занести данные занимает пару строк. В андроид студио нужно ебаться по 5 часов, чтобы хотя бы заставить какой-нибудь виджет работать. Перелопатить дохуищу примеров, ебаться с какими-то адаптерами, причем во всех примерах в гугле гайд по вставке изображений. Нахуй мне изображения, дайте БД. Очень, очень больно работать в этой среде. Простоты какой-то не хватает, что ли, или я дебил.
>>610934 Без явы не куда. Хотябы основы и ООП нужно знать. >startandroid.сру Уроки там очень хорошие. Прочитай первые 40-50 уроков, потом пили свой эпп вместе с гуглом.
Антоши, мне требуется запилить несложное приложение с меню, парой форм и таблиц, но яву я не знаю, знаю всякие си и пхп. Сильно ли я буду страдать или для таких несложных штук глубокого знания языка не требуется?
Поясните за стандартный дизайн: почему итт говорят, что зашквар его использовать? Сейчас открыл приложения Сбера, Деливери клаб, никаких выебонов нету, стандартные инпуты, менюхи, у всяких Яндексов вообще белое на белом, хули вы мне пиздите что его нельзя использовать?
>>611712 Вот этот хер что-то говорит: >>610204 >> разметку сфарганить это и есть сложное, если она не по гугловскому материалу. >Нет, не сложное. Я бы ещё поспорил о целесообразности такого метода т.к. это пиздец вованство, но даже если по материалу делать, приходится делать что-то кастомное и ебаться из-за разной хуйни.
>>611714 > Вот этот хер что-то говорит: Я наоборот сказал, что использование полностью кастомных элементов дизайна — вованство. Система даёт материал — надо использовать материал.
>>611742 Используй тот дизайн, который подходит к твоему приложению. Не используй материал, если хочешь, чтлбы твоё приложение выделилось среди остальных.
Блять, уже задолбался весь день трахаться с апи ластфма: http://pastebin.com/YM4ZAaUr В закомменченом испробованы различные варианты, уже и ссылку использую базовую, а всё равно FileNotFoundException при попытке чтения входного стрима и ResponseCode=400. При этом через браузер компа всё нормально: отдаётся XML. Что ещё можно придумать?
Посоветуйте аналог FragmentTabHost, только чтобы фрагменты НЕ пересоздавались. Т.е. чтобы поведение у него было как у ViewPager, но без скролла, у меня в одной фрагменте карта и скролл будет только мешать.
>>612735 Во вьпейджере фрагменты тоже унижтожаются до OnDestoyView включительно. И там, где будет карта, если нажимать на неё, скролла страницы самой не будет, только скролл карты.
как сделать так чтобы при создании модуля в андроид студии сразу устанавливалсь кодировка utf8? что-то дописывать в build.gradle? или все же есть где это дело в настройках?
>>615370 И что это за меню тогда вызывается в версиях 2.3 андроида если попап? Все приемы применительные к последнему никак не действуют на мою меню, я даже цвет текста установить не могу через стили(программно можно).
Ну же, анон! Что это за меню вызываемое по кнопке меню? OptionMenu допустим оно и есть. Но как к нему хотя бы стиль применить? Я уже всё перебрал. Ему просто похуй, прозрачный бэкграунд и всё тут.
Вот человек предлагает: Change the theme to android:Theme.NoTitleBar. It looks similar enough to Theme.AppCompat.Light.DarkActionBar
А можно ли как-то посмотреть что прописано в этих темах? Так чтобы я сравнив содержимое ВОЗМОЖНО нашёл бы тот параметр который отвечает за задник элементов меню.
>>611702 Кто такое говорит? Или не стандартный это материал с примесями? Все у материала норм, правда не всегда дизайн делают люди которые выкупают как ведроид работает. В результате куча говнокода жопа в архитектуре.
А вообще пиздовать по гайдбукам и не выебываться это лучшее решение. Не все из коробки доступно, но найти на стековерфлоу решение ты точно сможешь.
Котаны, есть приложение в котором испльзуется VK API. Нужно загружать список музыки. Как наиболее красиво сделать загрузку данных из ВК? При помощи VK API я получаю ответ в JSON формате, мне нужно преобразовать это в объекты. Ок. Беру Gson и получаю объекты. Но весь этот код с коллбеками и т.п. очень хочется вынести куда-нибудь за пределы фрагмента, тем более в нескольких фрагментах запрашиваются одни и те же данные. Создать свой класс типа: VkProvider и реализовать в нем методы getMusic(String userid, Callback callback)? Тогда получится коллбек в коллбеке. Или это нормальный подход?
>>616389 По хорошему - через контент провайдер, гугли презентации с I/O про архитектуру приложения. Но я на него забил и обмазываюсь realm'ом уже полгода.
Есть сервис, который занимается проигрыванием музыки. Он может генерить всякие события, типа: переключили следующую песню, обновилось время и т.д. Это сделано при помощи LocalBroadcast сообщений. Но, мне же еще надо как-то управлять этим сервисом, всего около 20 методов с разными аргументами. Использовать binding, везде где нужен сервис, получать на него ссыль и вперед?
Если использую setRetainInstance(true) у фрагмента, то без разницы где сохранять состояние при перевороте экрана? Мне например надо восстановить searchView который в ActionBar. Можно сохранить в onSaveInstance(), можно просто завести переменную в которую сохранить текст из SearchView.
Кстати, а кто нибудь пробовал вторую студию? Опишите впечатления о производительности? П.С. просьба указывать юзаете HDD или SSD, а то некоторые облоатели SSD и раньше чувствовали себя комфортно
Анон, как нормально хранить объекты в ресурсах? Мне нужно сохранить информацию о страницах в примерно таком формате: [ { id : "main", text : "Главная", icon : "home.png" }, { id : "favorits", text : "Избранное", icon : "star.png" }, { id : "settings", text : "Настройки", icon : "coug.png" } ]
>>616959 Не хочется что-то подключать ради пары объектов. >>616961 Не понял, ты в коде задаёшь все переменные? Я хочу хранить вью данные отдельно от кода.
А вообще, насколько хреново будет хранить приятную внешне JSON строку в ресурсах? Типа
<string name="pagesJSON"> [ { id : "main", text : "Главная", icon : "home.png" }, ... ] </string>
>>616963 Лучше хранить конкретно json-файл в assets. Алсо, я бы тупо сделал три независимых string-array, наверное. Но у тебя, вроде, покрасивее решение. Вообще, если это сорт оф меню, то можно сделать в меню файле.
>>616967 Да, это разумно, спасибо. >>617019 Это небольшие массивы однородных объектов, типа вышеописанного меню, вкладок, буквально по 3-4 элемента массива с 2-3 полями в каждом элементе. Применяться будет для отображения меню, полей списка и т.д.
>>617045 > Применяться будет для отображения меню, полей списка и т.д. Ну и в чем проблема задавать это в тех кусках кода, где это используется? Велосипеды вещь интересная, но нахуя? Как я уже писал выше, drawer я задаю программно через recyclerview + статический лист объектов id - id текста - id картинки.
>>617184 У меня навигация в drawer сделана более оптимально: В разметке MinActivity внутри DrawerLayout находится фрагмент - собственно содержимое дровера. Разметка дровера: linear layout внутри scroll view. А если нужно динамически формировать меню, то ты можешь подключить к этой linear layout обыкновенный адаптер, который наследуется от BaseAdapter. Чуть чуть подумав. В MainActivity реализован интерфейс Navigation и коллбек, в котором входной параметр: id пункта меню. Id пунктов меню заданы в R.id. И таким образом переключаются фрагменты. Заебись сделано? другой анон
>>617184 Да, наверное, проблемы нету, просто я не привык генерить вид напрямую кодом, включая данные в код, всё хотел их вообще все вытащить в ресурсы, чтобы все эти списки были там.
>>617218 Лучше бы кинул тогда дизайн либрари тогда, довольно классно выглядит. Только вот однотипное меню все реже и реже встречается. Да и уебанство дизайнеров и заказчиков никто не отменял, которые хотят как на айфоне и срать хотели на материал. >>617190 > В разметке MinActivity внутри DrawerLayout находится фрагмент - собственно содержимое дровера. Стандарт же. > Чуть чуть подумав. В onCreateView проходишь циклом по адаптеру и инфлайтишь в линеар лейаут. Не могу сказать, чем это лучше способа через ресуклер/листвью, который делает это автоматом. Адаптер ты пишешь в любом случае уже. > В MainActivity реализован интерфейс Navigation и коллбек, в котором входной параметр: id пункта меню. Id пунктов меню заданы в R.id. Тоже стандартно же.
Есть ли в андроид студии файл эксплорер для виртуального устройства? Не смотреть через само устройство например сохранился ли файл(долго), а через какой-нибудь встроенный браузер в компиляторе?
За одним глупым вопросом сразу другой. Сохраняю с помощью getSharedPreferences некоторые данные, а внутри него они почему-то не по порядку записываются. ЧЯДН?!
>>616629 Если у тебя сервис, проигрывающий музыку - лучше сначала запускать его старт сервисом, потом биндиться. И то, и другое можно делать практически в любой момент. Если вызывать сервис онли биндом - он помрет, когда уничтожатся все привязаннные к нему контексты. Ресивер создавай и регай где-нибудь в активити - тогда при её дестрое, у тебя одновременно отвалится приём событий.
>>616389 Гугли mvp, например. Слой по работе с апишкой лучше выноси отдельно, со всеми его коллбэками. Полностью избавиться от коллбэчного ада не получится - ибо на каждый запрос всеравно чаще всего нужен свой листенер. Если у тебя дохуя преобразований - юзай rxjava
>>617551 У меня в основном наполнение списков. Сделал так: класс PublicsAPI, методы: reload(), loadMore(), cancellAll(). При помощи Handler.Callback получаю 3 вида сообщений: LOAD COMPLETE, LOAD MORE, ERROR.
>>616640 При setRetainInstance состояние сохраняется само, если есть айдишники у элементов, вроде. Если не сохраняется, то проверь, не обнуляются ли у тебя поля где-нибудь в onCreateView/onActivityCreated
>>617546 Ага! Правильно я понимаю, что если использую коллбеки, чтобы передавать информацию от сервиса в активити, то в еденицу времени сервис должен быть забинден только в одной активити или фрагменте, где используется этот фрагмент?
Есть список в каждом элементе которого есть список элементов в linear layout. Как избежать вызова findViewById, при наполнении элементов вложенного списка? Использовать пул объектов?
>>617559 А нахуй тебе вообще юзать коллбэки для взаимодействия с активити? Этож геморрой, постоянно надо проверять активити на null, и состояние жизненного цикла. Лучше юзай сервис -> активити - броадкасты активити -> сервис - биндинг, и ссылка на сервис
>>618071 Ага. Логично. Насколько я потеряю в производительности, если будут отправлять от сервиса к активити через LocalBroadcast serializable объекты?
>>596036 (OP) утречка, Андроид-анон! Понимаю, вопрос несколько поднадоевший, но сейчас тороплюсь, нет времени скроллить тред: что посоветуете почитать для изучения легитимного набора? Английский ли язык, русский - неважно Джаву учил когда-то, но забросил, общие принципы ООП знаю.
При повороте экрана нужно сохранять данные из фрагмента, некоторые уже созданные объекты его внутренних классов. В бандл ведь их не запихнуть, так? Не разбивать же класс на составляющие, заебёшься. Сейчас пока работает через файл, убого же, наверняка дольше, чем в оперативной? Так как быть?!
>>618747 setRetainInstance(true) в onCreate фрагмента. Всё, больше ничего не надо. Фрагмент не будет пересоздаваться при повороте, будут вызываться только onCreateView - onActivityCreated - onAttach. Переменные внутри фрагмента сохраняют значение. После этого поправь свой код в активити, оставь только frag = ( WorkshopFragment ) getFragmentManager().findFragmentById( R.id.workshop_main ); А что такое onRetainNonConfigurationInstance(), я вообще не знаю, никогда не видел, чтоб использовалась, и судя по тому, что деприкейтед, никогда и не увижу.
>>618848 Увы, но всё не так просто. Наткнулся на страничку где человек нечто подобное расписывал. Говорит, что фрагмент-то не пересоздаётся, а вот его представление создаётся. А Я УЖЕ НЕ ПОНИМАЮ ЧТО У МЕНЯ В ОНКРИЕНТВЬЮ ПРОИСХОДИТ, что забил(не стал разбираться в чем проблема) и просто забабахал через тот же onRetainNonConfigurationInstance. Забудьте, нет вопроса.
>>618869 Быдлокод as it is. Меня в стажёрстве за такое по рукам бамбуковой палкой хуярили. Переделай по-нормальному лучше, если это, конечно, не твой последний проект на андроид.
>>618870 Почему же быдлокод? onRetainNonConfigurationInstance Сохраняет указанные объект, после восстановления активити я его спокойно могу использовать.
>>618872 Если метод deprecated, то его не следует использовать. Единственное исключение, если замещающий метод не поддерживается на текущей версии (например, camera2 api с 21, по-моему, версии, а сейчас обычно разрабатывают приложения для 11+ или в крайнем случае для 14+), в таком случае можно оставить, хотя лично я тогда делаю две реализации (camera api для 11-21 версии, а если версия 21+, то camera2 api, выбор простой проверкой, через if (Build.VERSION)).
>>618875 Ничего не могу пока поделать, почему-то не рисуются после поворота созданные объекты в нём(во фрагменте). Так что пусть пока побудет быдлокод у меня, в дальнейшем буду иметь ввиду. Первый проект.
>>618875 Вот нашёл http://4ybakut2004.blogspot.ru/2015/01/android-save-fragment-after-screen.html Он пишет: >Теперь фрагмент не пересоздается после поворота экрана, однако его представление все равно создается заново, так как вызывается метод onCreateView. И предлагает: >((ViewGroup) view.getParent()).removeView(view); Но, блин, это ошибку как раз и вызывает(что-то не может из xml-разметки прочитать).
Ну вот почему логкэт такое говно? Сообщения об ошибках вообще мало о чем говорят - где она блядь произошло? Выход за пределы массива? Какого именно? Писто как всё плохо в сравнении с вижлстудией.
Программач, есть куча форм с валидацией в приложении и есть желание написать простенькую функцию для работы с ними, причём так, чтобы она делала следующее: 1. Принимала идентификатор формы (родительского лейаута для эдиттекстов) и искала внутри все эдиттексты. 2. Собирала из эдиттекстов значения и отсылала на сервер. 3. Принимала ответ от сервера и запускала некий коллбэк. Как подобное можно реализовать? Особенно интересует п.1, т.к. сейчас есть подозрение, что придётся перечислять все поля вручную, а их порой очень много. Спасибо.
Рисую средствами канвы сетку, при масштабировании некоторые линии пропадают, полный хаос! Подскажите пожалуйста может как-то параметры рендеринга настроить нужно чтобы линии сглаживались, но не пропадали? Спасибо!
>>618961 1. Мысли верные. Как перебрать все дочерние элементы, я думаю ты разберешься. Обязательно проверь тип, чтобы это был именно EditText. 2. Для каждого EditText можешь задать в XML тег: android:tag="@string/item_tag", далее когда будешь строить POST или GET запрос, используй эти теги в качестве названий параметров в запросе. 3. Одна из многих библиотек для асинхронных запросов, простая в использовании: http://loopj.com/android-async-http/
>>618993 Если ответ от сервера в формате JSON, то можешь при помощи одной строчки кода преобразовать его в объект при помощи Gson https://github.com/google/gson
Есть у меня фрагмент со списком. В onCreate вызываю setRetainInstance(true) и создаю адаптер. Мне нужно 1 раз загрузить данные из сети и занести в список. Т.е. мне не нужно, чтобы при возврате из backstack данные снова загружались из сети. Но как это сделать?
Как поймать момент, когда View полностью загружен? Приложение валится с nullPointer иногда, когда после загрузки с камеры основная Activity помирает и затем пересоздаётся, и я пытаюсь реинициализировать какую-нибдуь кнопку/ползунок или ещё какой-нибудь элмент интерфейса и обратиться к его полям/методам.
Фрагменты не задействовал, думаю переписать основную активити чтобы весь интерфейс таки да был во фрагменте, поскольку у фрагментов есть событе, когда View загружен полностью.
Жизненный цикл активити более-менее понимаю. Но проблема не в том что я из Bundle состояние activity не восстанавливаю. После выгрузки activity из памяти и возврату к этой activity заново вызывается onCreate, вызывается onCreate, в нём зовётся setContentView заново, после чего начинаю реинициализировать View например баннера рекламного :
AdView mAdView = (AdView) findViewById(R.id.adViewMain); // setContentView ещё не закончил работу, и из-за этого mAdView нулевой AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); // вот тут будет NullPointer из-за того что mAdView не была нормально инициализирована
>>596036 (OP) Хотел посмотреть в Wireshark-e как проходит аутентификация одного андроид приложения (интересуют реквесты к закрытому API и ключи, которые оно отправляет). Девайсов на андроиде нет, поставил Bluestacks, Wireshark видит его трафик, но пользы от этого мало - реквесты все идут через HTTPS. Люди как-то получают нужные реквесты и ключи. В какую сторону смотреть? Реверс инжинирить приложение? Если да, то как? Если нет, то что посоветуете?
>>622265 Пиши в живой тред. По делу - передай в конструктор Resources или Context, если боишься утечек возьми у контекста контекст приложения - тогда не протечет, когда надо берешь стринг арэй.
Привет, ребята, очередной чайник в треде. В общем задумал я сделать одну классную вещь под андроид, но ни с чем, связанным с программированием в жизни дел не имел. Так вот вопрос. На каком движке можно написать игру типа "Взломщик 1.6", если помните такие были популярны лет 10 назад. Много ли нужно времени для того, чтобы новичку написать подобное?
>>596036 (OP) Привет пацаны! Как и многие решил угореть по андроиду, написал приложуху (афишу для местных кинотеатров) и заметил, что скролл не такой плавный как в приложении ВК.
Ради такого дела полез смотреть трассировку - если мотнуть экран вниз, то первое время все нормально (пик 1), но в какой-то момент все становится плохо (пик 2) и дальше лучше не становится. Во фрэйме, после которого все ломается, происходит "Expensive Bitmap uploads" Pixels uploaded "0.31 million", Time spent 11.750 ms, Upload 1038x300 Texture took 11.75ms. О каких текстурах идет речь я не понимаю, у меня даже при всех закомменченных ImageView такая же фигня.
Не понимаю как работает сборка мусора. Допустим, у меня есть Activity, с методом onResult. Activity создаёт другой объект, допустим Dowloader с помощью new Downloader(this). Downloader сохраняет эту переданную ссылку в поле mCallback. Внутри Downloader объявляется AsyncTask, который в onPostExecute вызывает mCallback.onResult(yoba). Вопрос: если в момент выполнения AsyncTask Activity будет убита, что произойдёт? Будет ли собран сборщиком объект Downloader? По идее объект AsyncTask будет иметь ссылку на родительский объект, значит ли это что он будет жить? Значит ли это что ссылка mCallback вмесие с Activity также останется жить? Если всё да, то какой нормальный выход? Сделать WeakReference mCallback? Сделать AsyncTask static?
Аноны, денёчка! Хочу сделать шапку для своего приложения, которая будет включать в себя пикчу и текст, со шрифтами, цветом и размером которого хотелось бы поиграть. ActionBar скрыл, в как это сделать Toolbar`е тоже не догоняю. Надежда на тебя, анон!
The Busy Coder’s Guide to Android DevelopmentАноним20/01/16 Срд 00:10:09#522№629640
Сап, андроны. Полистал я эту вашу The Busy Coder’s Guide to Android Development, годнота годнот. Но в интернетах одно старье, хотя автор уже запилил 7-ую версию с SDK6.
Сходил я на https://commonsware.com/warescription, годовая подписька (включает все обновления) стоит СОРОК ПЯТЬ БАКИНСКИХ, что в новых реалиях слишком дохуя. В связи с чем предлагаю скинуться. Заявки принимаются неделю (до 27.01) по адресу: [email protected]. Указывайте потолок, который готовы выложить (лично я готов потратить $5-7 из своих $19 стипухи). Если есть знакомые ведродевелопы -- зовите.
Все принявшие участие будут получать обновления как только они будут выходить (или пока какой-нибудь крысакун не скинет книжку в сеть и нашу подпиську аннулируют -- лицензии у книжки именные.)
Знаю C++, нужно разработать простенькую графическую игрушку под ведроид. Чем лучше воспользоваться? Ну, с джавой, думаю, тоже разобраться смогу, но желательно плюсы.
Коротко о главном:
1) Если ты учил джаву но не хочешь пилить тырпрайз до конца жизни - добро пожаловать в андроид разработку.
2) Android Studio & Java - единственный легитимный набор, теперь стал еще легитимнее.
3) Xamarin -для богатых и ебанутых виндовсопоклоников, медленно и невыгодно, но на шарпах.
4) PhoneGap - не пробовал но осуждаю, как и весь не-web на js. На самом деле изменил свое мнение, всякие поделки на js имеют место быть, и более того, в наших же интересах клепать несложные проекты на нем, так как объективно быстрее сделать юи.
Где брать инфу:
Интернет-ресурсы
1) http://developer.android.com/index.html
Наша библия. Документация/небольшие примеры/гайды. Но только на инглише, но это плюс. Минус в том, что это все таки документация с небольшими примерами и гайдами и искать там реализацию чего-то хоть немного сложного нету смысла. Раздел Training как раз для старта.
2) http://stackoverflow.com/
Пользуюсь чаще чем первым сайтом. Можно найти практически все.
3) Есть два вполне вменяемых русскоязычных ресурса. Для старта подходят очень даже.
http://startandroid.ru/
и
http://developer.alexanderklimov.ru/android/
Второй еще и условно бесплатный. Главный плюс - это русский язык, простые гайдики, но переводы классов иногда заставляют фейспалмить.
4) http://habrahabr.ru/ - редко но метко, можно найти годные статьи по каким-то реализациям, или переводы с developer.android. Хотя чего тут объяснять.
5) https://www.udacity.com/ - в треде очевидцы говорили что есть годный курс, но я лично не смотрел.
Книги, их никто не читает, но все советуют только одну
1) The Busy Coder’s Guide to Android Development
Пред. тонет тут: https://2ch.hk/pr/res/569138.html