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



Реп: (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 - 25.09.23, 22:54
Причина редактирования: Редактирование



Реп: (222)
* mitsan,
Это не та тема, для этого, но у меня работает
скрин
Прикрепленное изображение




Реп: (0)
Спасибо.
Может на MIUI не хочет



Реп: (29)
Для собственного удобства мучаюсь парсить Яндекс расписание электричек.
Всё что смог вычитать это библиотека Jsoup.
Страница яндекса содержит тег <tbody> в нем и содержится нужная мне таблица. Но в этой таблице присутствует рекламные баннеры. Два баннера Jsoup проходит мимо ,а на третьем закрывает тег </tbody> в итоге я имею всего 20 из 42 пунктов.

Всю бошку сломал

//implementation("org.jsoup:jsoup:1.16.1") // library



import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.jsoup.select.Elements

fun main() {

val url = "https://rasp.yandex.ru/search/?fromId=c2&fromName=Санкт-Петербург=s9603444&toName=Ланская&when=1+августа"

val doc: Document = Jsoup.connect(url).get()

val el: Elements = doc.getElementsByClass("SearchSegment SearchSegments__segment")

el.forEach {
println(it.text())
println("------------")
}

println(el.size)

}


Подскажите как правильно получить Document целеком.

Сообщение отредактировал Jever - 19.05.23, 19:41
Причина редактирования: Прошу помощь



Реп: (161)
* Jever, дайте ссылку откуда парсите. И какие именно данные нужно получить. Я так понимаю текст какой то.



Реп: (985)
* Jever, а вы уверены что они загружаются сразу? Вполне возможно что список подгружается по мере прокрутки



Реп: (29)
* Mobila6233,

Так ведь ссылка в стрингах )
https://rasp.yandex.ru/search/?fromId=c2&fromName=Санкт-Петербург=s9603444&toName=Ланская&when=1+августа


Всё верно. Нужен текст с временем отправления поезда. (Постом ранее я прилепил код он обсолютно рабочий. Для теста пользуюсь intellij idea)

Сообщение отредактировал Jever - 20.05.23, 05:33



Реп: (29)
* Snow Volf,
Я третью неделю не сплю. И уже не в чем не уверен.
Вижу что реклама добавляется js скриптом и кодом заложенно что именно через 10 строк.

Понимаю что "суп" не выполняет js

Сообщение отредактировал Jever - 20.05.23, 05:26



Реп: (2516)
Товарищи, кто с градиентами плотно ковырялся?
Как мне ПРОГРАММНО получить вот такой градиент?
Прикрепленное изображение

Естественно, со своими цветами.
У меня тяму не хватает.

Нужно именно с таким прямым переходом. С плавным я и сам могу:
Прикрепленное изображение

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



Реп: (594)
Существует ли возможность запустить приложения в режиме разделенного экрана и указать им процент использования ширины экрана? Примеры из доков: https://developer.andr…s/multi-window-support стартуют приложения только в пропорции 50/50, можно ли это исправить? Например запустить 2 приложения в пропорции 70/30.

Сообщение отредактировал AirLexa - 30.05.23, 15:40



Реп: (1)
Здравствуйте. Ребята очень нужна помощь. Хотел спросить кто-нибудь может компилировать адроид приложение? У меня самого нет ПК и опыта в этом. Я скачал исходный код андроид приложения из гитхаб а компилировать его никак не могу. Кто-нибудь может мне в этом помочь? Буду очень благодарен. Вот ссылка на оригинальный исходный код апк приложения
https://4pda.to/forum/…6/8BallPool-master.zip



Реп: (23)
* VDOOVATOR,
Ваша ссылка не открывается(3 точки вместо полной ссылки).
Можете попробовать Github Actions для сборки проекта. На Хабре есть подробная статья про это.



Реп: (222)
Подскажите, использую checkBox вот так

public void onCheckboxClicked(View view) {
// Получаем флажок
CheckBox checkBox = (CheckBox) view;
TextView selection = findViewById(R.id.selection);
// Получаем, отмечен ли данный флажок
if(checkBox.isChecked()) {
selection.setText("Включено");
checkBox.setText("Выключить");
}
else {
selection.setText("Выключено");
checkBox.setText("Включить");
}
}


Свою функцию выполняет, но стоит выйти с программы, флажок снимается. То есть, поставил флажок, функция выполнилась, вышел с программы - флажок снялся и чтобы выключить функцию, нужно поставить флажок и обратно снять.
Что добавить чтобы не снимался после выхода?



Реп: (2516)
bond83 @ 10.06.23, 18:30 *
Что добавить чтобы не снимался после выхода?

правильно использовать надо.
Откуда ваша софтина знает, какое значение нужно ставить вьюхе на старте? Вы этого в представленном куске нигде не описываете.
Вот оно и ставит значение по-умолчанию.
Надо что-то типа такого:
boolean set_close_big_symb = st.pref(context).getBoolean(st.PREF_KEY_FV_DIALOG_BIG_SYMBOL, false);
cb1.setChecked(set_close_big_symb);
cb1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
if (((CheckBox) v).isChecked())
set_close_big_symb = true;
else
set_close_big_symb = false;
st.pref(context).edit.putBoolean(st.PREF_KEY_FV_DIALOG_BIG_SYMBOL, set_close_big_symb ).commit();

}
});



Сообщение отредактировал wolf3d2 - 10.06.23, 18:49
Причина редактирования: .commit() забыл. Вечно его забываю :)



Реп: (222)
* wolf3d2,

Пробовал так
final CheckBox enableBox = findViewById(R.id.enabled);


enableBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if(isChecked) {

buttonView.setText("Hide");

Toast.makeText(MainActivity.this, "Hide Now", Toast.LENGTH_SHORT).show();

}
else {

buttonView.setText("View");

Toast.makeText(MainActivity.this, "Un Hide Now", Toast.LENGTH_SHORT).show();

}

}


});

Тоже не работает



Реп: (3174)
* bond83, почитай как использовать sharedpreferences и, возможно, вопрос сам отпадёт, если построишь логическую цепочку



Реп: (2516)
bond83 @ 10.06.23, 19:50 *
Тоже не работает

а чем этот код отличается от первого? Ответ - ничем.

Заработался? :)

Разве тебе непонятно что делается в моём примере? Ты ведь, если не ошибаюсь, давно с Явой знаком.
Я поэтому ничего и не расписывал, думал и так поймёшь.

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

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



Реп: (222)
wolf3d2 @ 10.06.23, 21:16 *
давно с Явой знаком.

Это было давным, давным-давно и то пока курсы заканчивал (плохие курсы были)



Реп: (23)
Вопрос снят путем создания напоминалки с приемником интента в Андроид Студио
Здравствуйте. Вы - моя последняя надежда.
Есть ли интент, и какой, если есть, для пробуждения телефона (точнее, включить экран заблокированного телефона, чтобы увидеть локскрин (вручную будится двумя тапами по экрану))? Телефон не рутован, поэтому в Шелл
sh input keyevent keycode_power (или 26)
не срабатывает, а некоторые коды срабатывают (home, back, а также input tap x y) только на разблокированном экране. Программа Macrodroid умеет это действием "включить экран", но работает нестабильно.
Формула
intent://com.android.calendar/events/94#Intent;scheme=content;end
открывает календарь на определенном событии.
А есть ли что-то подобное для включения экрана?
Это нужно для реализации функции напоминания о пропущенных в KWGT, которая сейчас у меня работает через бота Телеграм.


Сообщение отредактировал HZman - 11.07.23, 08:44
Причина редактирования: Решил вопрос



Реп: (222)
Тест приложения, есть класс MainActivity , пробую в нем организовать CheckBoxPreference
То есть, (не знаю как правильно назвать) создаю в этом классе, ещё класс TestSw

public class MainActivity extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



TestSw mTestSw = new TestSw();
mTestSw.neWCheck();


}



public class TestSw extends PreferenceActivity {


public void neWCheck(){


CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("my_check");

checkBoxPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean isChecked = (Boolean) newValue;

if (isChecked) {

Toast.makeText(getApplicationContext(), "enableEmailNotifications", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(getApplicationContext(), "disableEmailNotifications", Toast.LENGTH_SHORT).show();

}

return true;
}
});

}



}


}


В preferences.xml
<CheckBoxPreference
android:key="my_check"
android:title="Hide"
android:defaultValue="false" />


Приложение падает с ошибкой

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.preference.CheckBoxPreference.setOnPreferenceChangeListener(android.preference.Preference$OnPreferenceChangeListener)' on a null object reference
at com.hide.app.MainActivity$TestSw.neWCheck(MainActivity.java:204)


Есть класс Settings, в нем все работает, почему так крошиться?



Реп: (1392)
* bond83, потому что preferenceActivity это в кишках Activity и создается и резолвятся элементы из preferences.xml нетривиально. самому, особенно начинающему, наверное это будет сложновато. погуглите как preference элементы вставить в саою активити, это немного попроще


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

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

Сейчас: 02.10.23, 14:06