Category Archives: Android

Posts on Android development

Delete files by mask in Bash (Terminal)

Go to the folder, where you want to delete for instance all mp3 files in this folder and it’s subfolders and type this:

If you want to delete files by mask only in current folder, type this:

Паттерны проектирования

Заметки при чтении книги “Паттерны проектирования” (Эрик и Элизабет Фримен)

——————————————————————————————————-

Examples Source Code: GitHub

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

Скачайте примеры кода на Java c GitHub.

——————————————————————————————————-

Мои заметки после работы с VBA (Tips and tricks)

Конвертация из String в Integer:

Конвертация из Integer в String:

Активация конкретного листа:

Использование циклов Do и выход из циклов:

Процедура для удаления пустых строк

Проверка того, что ячейка пуста и удаление целой строки:

Показ сообщения с числом каким-нибудь:

Добавление данных на другой лист:

Конструкция “for each” в Java

Недавно задался вопросом, есть ли такая конструкция в Java. Ясного ответа сразу не нашел. Некоторые говорят на форумах, что нет, а некоторые говорят, что есть, но как-то хитро через коллекции. Так вот, привожу пример своего кода, в котором использован аналог “for each” в Java:

Elements links = doc.select("link");
for (Element link : links) {
      linksList.add(link.text());
      Log.v(TAG, "link:"+link.text());
}

Плагин WordPress для увеличения изображений (Plugin for resizing images on WordPress)

По умолчанию WordPress увеличивает картинку, открывая целую страницу либо в текущем, либо в новом окне. Я долго искал плагин, который бы позволял увеличивать изображение в той же странице. Изучив три плагина, я все таки нашел четвертый, который мне подошел. Итак, называется он Auto Thickbox Plugin For WordPress и скачать его можно на странице плагинов WordPress или на официальной странице, где я и скачал.

Кликните на следующую картинку, чтобы посмотреть, как это работает:

Обновление ListView в Android

Мейнстрим решением для обновления ListView после изменения данных является использование метода arrayAdapter.notifyDataSetChanged(), где arrayAdapter – Ваш адаптер. Но к сожалению, это не всегда срабатывает.

Я использовал в своем случае другое решение, которое сработало – просто переопределял адаптер целиком. Теперь таблица обновляется после изменения данных в массиве, с которым она связана.

Парсим XHTML с помощью JSoup в Android

Расскажу о том, как можно распарсить XHTML или даже HTML с помощью JSoup в Android. Лично я парсил XHTML. Для этого нужно:

  1. Скачать jar файл JSoup библиотеки здесь.
  2. Подключить JSoup.jar к нашему проекту. Для этого нажимаем правой кнопкой на проект, далее выбираем Build Path->Configure Build Path.

    В появившемся окне нажимаем Java Build Paths, далее выбираем вкладку Libraries и добавляем через Add Jars.
  3. Создать объект класса Document, который, кстати, должен быть именно из Jsoup библиотеки, а не родных библиотек. Это можно выбрать при нажатии Shift+Cmd+O после того, как вы добавили код, использующий JSoup. Объект класса Document в данном случае создается из того, что подкачивается через URL. Далее с этим объектом можно работать. Например, в данном случае из него извлекаются все ссылки с тэгом а, и создается массив из ссылок и их атрибутов href. Сначала все добавляем в структуру ArrayList, затем ArrayList заносим в String[] массив. Все, что добавлено, пишется в LogCat через Log.v. В данном случае, метод doInBackground должен быть в составе класса AsyncTask, просто не хочу приводить весь код, это будет лишним.

Это лишь один из примеров использования JSoup. Возможностей у него много и здесь можно найти более подробное их описание.

Интернет через Proxy на симуляторе Android

В отличие от симулятора iPhone, эмулятору Android нужно объяснять, как ему выходить в интернет. Здесь речь пойдет о случае, когда вы работаете через Proxy.

Неработоспособность интернета на эмуляторе Android – общая проблема и широко обсуждается на StackOverflow. Я задал также свой вопрос там, но мне не смогли помочь, в итоге я сам же и ответил на свой вопрос.

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

Итак, последовательность действий, чтобы интернет у Вас заработал:

  • В Eclipse заходим в Run Configurations. См. рисунок. При нажатии он увеличивается.
  • Нажимаем на Target для нашего проекта. Прокручиваем вниз и вводим настройку Proxy в поле Additional Emulator Command Line Options. Я не знал, что нужно прокручивать, и искал это поле очень долго. В случае использования эмулятора версии 2.3.3. вводим

    Если вы используете эмулятор версии 4.0.3, то dns указывать не надо:

  • Нажимаем Apply, чтобы сохранить настройки и либо нажимаем Run здесь, либо просто запускаем проект как обычно. Обращаю внимание, что для дебага нужно прописать отдельно это же в Debug Configurations.

Данное решение хорошо тем, что оно не зависит от симулятора и настройки хранятся в Target в проекте, а не вне проекта. Но оно плохо тем, в отличие от решения которое я указал ранее, что нужно все время прописывать эти настройки для всех проектов и всех конфигураций.