Anonymous
ааа, так я же говорю. она там есть, только ее скачать невозможно
Александр
ааа, так я же говорю. она там есть, только ее скачать невозможно
Есть ресурсы в интернете, чтобы выкачать из GP отдельно APK.
Anonymous
посоветуй ресурс
Александр
Надо пытаться ещё. https://www.google.com/search?q=google+play+download+apk&oq=google+play+down&aqs=chrome.2.0j69i57j0l6.3134j0j7&sourceid=chrome&ie=UTF-8
Александр
посоветуй ресурс
Оч редко когда оно мне надо, выкачиваю через расширение хромовское.
MobileDev
Всем привет не получаеттся отправить запрос если в url указан порт (80,443работают) если ввожу другой не идут запросы и нету ошибок просто стоит, пробую через retrofit
Сергѣй
Такой вопрос - есть приложение и надо сделать, чтобы оно каждый день в заданное время присылало уведомление - каким инструментом лучше воспользоваться WorkManager ?
Alexsandr
Привет, есть кто делал подписку? Может есть какая инструкция простая, ну или не очень, главное что бы была)
Алексей
Добрый день. Пытаюсь обновить запись в базе SQLite val newRowId = db?.update(ProgramEntry.TABLE_NAME, values, "program_url = ${urlObject.url}" ,null )
Алексей
urlObject.url содержит http://
Алексей
и в итоге вываливается ошибка
Алексей
android.database.sqlite.SQLiteException: unrecognized token: ":" (code 1 SQLITE_ERROR)
Алексей
как нормально обновить запись в таблице?
Назарий
всем привет. может быть глупый вопрос, но как убрать эту штуку?
Назарий
спасибо)
awawa
Такой вопрос - есть приложение и надо сделать, чтобы оно каждый день в заданное время присылало уведомление - каким инструментом лучше воспользоваться WorkManager ?
Да, или AlarmManager. Как я понял, WorkManager не особо умеет в определённое время срабатывать, он может сработать чуть-чуть позже, чем надо
Алексей
есть в утилах метод escape
чуть подробнее можно? )) спасибо
Dmytro
DatabaseUtils.sqlEscapeString(stringToEscape)
awawa
Спасибо, но Вларм может пропасть при перезагрузке =))
Это да, здесь придется еще и перезапускать его каждый раз
Dmytro
что-то типа того
Алексей
спасибо
Алексей
DatabaseUtils.sqlEscapeString(stringToEscape)
Да, помогло, спасибо большое
Anonymous
обязательно ли для того, чтобы скачать файл во внутреннюю память по url устанавливать file provider ?
Konstantin
файл провайдер вроде только для раздачи файлов другим приложениям, а не для скачивания себе
Anonymous
файл провайдер вроде только для раздачи файлов другим приложениям, а не для скачивания себе
не могу заюзать либу эту. на stackoverflow прочитал , что нужен файл провайдер, но когда прописываю в манифест, он выбрасывае exception
Konstantin
у них вроде есть демо апп в репозитории, клонируй, запускай, разбирайся ) в манифесте там нет никакого файл провайдера
Vasily
Всем привет. Может здесь кто поможет. Использую MVI , вью подписывается на стейт вьюмодели , все работает. Но теперь я подключил базу данных , в которую записываю/читаю информацию по юзеру (в userRepo). Каким образом лучше реализовать колбек/флаг , который давал бы понять userRepo что пора обновить юзера? Если изменния с юзером были связаны в другом репозитории ?
Vasily
Учитывая что репозитории не должны знать друг о друге
Vasily
в гугло примере, с livedata все понятно. Но без использования livedata получается проблема. Спасибо
Vasily
Может кто сталкивался
awawa
Ребят, объясните плиз где я тут туплю. У меня в активити есть интерфейс OnServiceStateChangedListener и методы set... и remove... соответственно для установки и удаления этого листенера. В фрагменте, в методе onResume я этот интерфейс имплементирую и устанавливаю методом set... в активити, в методе onPause делаю remove.... Вот при создании активити и создании фрагмента первый раз, всё подключается и всё работает. Но когда я перехожу на другой фрагмент и возвращаюсь на этот обратно, фрагмент пересоздается. Все методы как надо вызываются, но когда пытаюсь достучаться до листенера потом он почему-то становится нулом, хотя в методе set.. я проверяю на нулл и там всё ок. Как такое получается?
awawa
"фрагмент пересоздается" скорее всего не фрагмент, а вью
Метод onResume вызывается, метод set... вызывается, в методе set... листенер не нул.
Ярослав
Метод onResume вызывается, метод set... вызывается, в методе set... листенер не нул.
листенер имплементируется или иплементируется то, что его вызывает? давайте код сразу, всего фрагмента, вас (всех как правило) фиг поймёшь)
Ярослав
Вот, как-то так: https://pastebin.com/T1sJbBpd
removeStateChangedListener ни от куда не вызывается?
Ярослав
Вот, как-то так: https://pastebin.com/T1sJbBpd
в какой момент у тебя выполняется if (stateChangedListener != null)? залогай вообще все методы типа onCreate onStart onResume onPause onStop onDestroy, для фрагмента ещё и onCreateView onViewCreated onDestroyView. и посмотри, может и сам чё найдёшь
Konstantin
Вот, как-то так: https://pastebin.com/T1sJbBpd
говно какое то. во первых есть https://developer.android.com/reference/androidx/fragment/app/FragmentManager.FragmentLifecycleCallbacks в активити в onCreate регистрируешь колбяк во вторых в колбяке в двух (например) методах, даже пусть onFragmentResumed/onFragmentPaused получаешь фрагмент. сам фрагмент пусть реализует твой этот интерфейс получается код будет примерно onCreate(){ supportfragmentmanager.addLifecycleCallback( cb) } cb.onFragmentResumed(f: fragment){ if (f is MySuperInterface) { this@activity.setMySuperListener(f) } } cb.onFragmentPaused(f: fragment){ if (f is MySuperInterface) { this@activity.removeMySuperListener(f) } }
Даниил
Привет! Подскажите, как можно сделать всплывающую View относительно элемента, на который кликнули?
Evgeny
Подскажите, есть и у кого материалы по верстке экранов, может курс
Evgeny
material.io
Содержательно, я хотел услышать более конкретный ответ
Konstantin
Содержательно, я хотел услышать более конкретный ответ
наверное каждый андройдер задайется таким вопросом хоть раз, но по итогу ничего не находит. все разбросано по интернету, кусочками, где то старое и неактуальное, по статьям индусов разных на медиумах и может стартандроидах
Evgeny
Может кто-то отважился, записал курс или собрал воедино
Ярослав
да чем вам не угодил material.io? там чёрным по белому как делать хорошо, а как плохо
Konstantin
ну и там нет практической части - что писать в хмл или как собирать вьюшки андроида в рантайме, ведь вопрос был об этом )
Evgeny
да чем вам не угодил material.io? там чёрным по белому как делать хорошо, а как плохо
Там рассказано как сделать это в xml , как сделать хорошо, какие подходы, как лучше ?
Evgeny
Пока нашел вот это Проектирование пользовательского интерфейса в Android. 2-е издание
Ярослав
Там рассказано как сделать это в xml , как сделать хорошо, какие подходы, как лучше ?
читаешь старые мматериалы по LinearLayout RelativeLayout FrameLayout ConstraintLayout, варишь в голове денёк и начинаешь экспериментировать неделю-две
Valery
Привет! Подскажите, как можно сделать всплывающую View относительно элемента, на который кликнули?
Берешь позицию клика или вьюхи. Создаешь диалог. У диалога есть getWindow().getAttributes(). Задаешь vertical/horizontal margin по полученным координатам
Vadim
делаю QR scan и суть в том что нужно нарисовать квардрат который будет показывать реальную картинку(то что на камере) остальное всё в фоне как на картинке. квадрат я нарисовал, фон задал но как сделать так чтобы содержимое квадрата было "вырезанным". Ну то есть я думал что Color.Transparent мне поможет но нет, тогда квадрат тупо цвета фона. val paint = Paint() paint.color = Color.rgb(0, 0, 0) paint.strokeWidth = 10f paint.style = Paint.Style.STROKE canvas.drawRect(100F, 100F, 200F, 200F, paint)
Vadim
посмотри paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.CLEAR)
да спасибо а я тут вот смотрел но тут Out https://stackoverflow.com/a/27983150/6387618
George
всем привет, может быть такое что в зависимости от производителя телефона проставляются значения по разному,(самсунг в double типе данных ставит запятую) а ксяоми точку
Vadim
не совсем понимаю пояснение данного метода c офф документации кто может объяснить на пальцах? onSizeChanged protected void onSizeChanged (int w, int h, int oldw, int oldh) This is called during layout when the size of this view has changed. If you were just added to the view hierarchy, you're called with the old values of 0. что значит когда размер view изменился в данном случае?
Ярослав
А что это значит?
а сорян, я почему-то про даты подумал)
Vadim
почему не с помощью zXing?
вопрос был не в этом) я просто вообще пока не оч понимаю зачем этот метод был в старом коде) вот пытаюсь разобораться)
Helen
Screenshot (23 апр. 2020 г. 13:34:01)
awawa
говно какое то. во первых есть https://developer.android.com/reference/androidx/fragment/app/FragmentManager.FragmentLifecycleCallbacks в активити в onCreate регистрируешь колбяк во вторых в колбяке в двух (например) методах, даже пусть onFragmentResumed/onFragmentPaused получаешь фрагмент. сам фрагмент пусть реализует твой этот интерфейс получается код будет примерно onCreate(){ supportfragmentmanager.addLifecycleCallback( cb) } cb.onFragmentResumed(f: fragment){ if (f is MySuperInterface) { this@activity.setMySuperListener(f) } } cb.onFragmentPaused(f: fragment){ if (f is MySuperInterface) { this@activity.removeMySuperListener(f) } }
Ну да, так код лучше получится, спасибо. В общем вся проблема была в том, что я использую NavigationDrawer. И вот я залогировал вызов методов onStart, onResume, onPause, onStop. Если переходить с одного фрагмента на другой, то вызываются onStart->onResume (у того на который переходят). Но если переходить с одного фрагмента на него же, то вызывается onStart->onResume->onPause->onStop. И при этом фрагмент находится на экране и работает. В общем всё решилось запретом на переход с любого фрагмента на себя же.
Mike
@IAUEI @mobile_jobs @android_jobs
Дмитрий
Это же не webView?
Дмитрий
как реализовать такой переход по урл?
Дмитрий
чтобы не открывать полностью браузер в приложении, как в телеге реализовано например
Andrei
Привет всем, ни кто не подскажет как правильно передавать параметры в include при помощи DataBinding ? не видит родительский layouts , data секции вкладываемого :(
Mike
Дмитрий
А разве это не старая либа?