Создавая пользовательский интерфейс нужно уделить максимум внимания тому, чтобы пользователь мог достигнуть необходимого результата приложив минимум усилий. Именно таким целям  служит виджет AutoCompleteTextView. Попутно научимся использовать массивы строк, описанные в ресурсном xml-файле. Суть проблемы Допустим у нас есть текстовое поле, в которое пользователь может вводить значение, при этом у насПрочесть статью

Продолжение статьи Основы использования SQLite в Android. Часть 1: cоздание и использование базы данных. После всего вышеописанного можно сказать что создание инфраструктуры для работы с базой данных делится на два этапа: Описание наследника SQLiteOpenHelper Описания методов для выполнения запросов к базе и работы с курсором. Это может быть адаптер, ноПрочесть статью

Хотите посмситься из приложения? Проще простого. Uri smsUri = Uri.parse("smsto:3300052"); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); intent.putExtra("sms_body", "Привет, Платон! Пиши еще!"); startActivity(intent);Прочесть статью

Ниже описаны два подхода: один для немедленного звонка, другой — переводит вас в диалер (экран набора номера и кнопок контролирующий вызов) с заранее определенным номером. //Покажет "звонилку" с номером 3300052 Uri dialUri = Uri.parse("tel:3300052"); Intent dialIntent= new Intent(Intent.ACTION_DIAL, telUri); // Сразу звонит на 3300052 Uri callUri = Uri.parse("tel:3300052"); Intent callIntent=Прочесть статью

Сложно представить серьезное приложение, которое не нуждается в хранении данных. В Android существует несколько способов для этого: SharedPreferences, использование файлов, использование веб-сервисов и Sqlite базы данных. Сегодня мы рассмотрим последний вариант в достаточном объеме. Суть проблемы При создании приложения с базой данных можно разделить работу на 3 этапа: Описание моделейПрочесть статью

Очень обширный класс задач требует применения многопоточности: сложные вычисления, доступ в сеть или к другим устройствам, отслеживание каких либо изменений данных. Выполнять их нужно в отдельном потоке, но при этом необходимо учесть, что изменять элементы интерфейса можно только из основного потока программы. Это создает некоторые сложности, которые мы запросто преодолеемПрочесть статью

Скороть работы и, особенно, запуска эмулятора Android печальна. Сегодня я поделюсь опытов его ускроения, а в частности: Ускорение загрузки эмулятора при помощи snapshot Увеличение объема внутренней памяти эмулятора Ускороение запуска эмулятора Эмулятор может запускатся практически моментально (не более 10 секунда), если использовать так называемый «snapshot» — сохранненный образ состояния эмулятора,Прочесть статью

Не так давно компания Google представила активным интернет-пользователям сравнительно молодой, но уже весьма популярный браузер Google Chrome для мобильных устройств и планшетов, работающих на Android 4.0. Универсальную бета-версию браузера уже сегодня можно бесплатно скачать с андроид-маркета. Установка программы проста и понятна. Но самым главным достоинством браузера можно отметить его удобствоПрочесть статью

Приложение может запланировать показ уведомлений (похожих на UIAlertView) пользователю на любое время в будущем. Вместе с уведомлением можно изменить бейдж приложения (красный круг около значка), проиграть звук. Для каких приложений полезны UILocalNotification? Например для приложений «напоминалок», будильников, To-do листов. Приложение, работающие в фоне так же может показывать UILocalNotfication, чтобы уведомитьПрочесть статью

Часто нам нужно спрятать экранную клавиатуру и убрать фокус с EditTextView. Ниже можно найти решение) //Получаем системную службу – менеджер метода ввода InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); //Указываем менеджеру в качестве параметра WindowToken нужного EditTextView imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);Прочесть статью

Написать эту статью меня побудило 2 фактора: статья «Когда я говорил», берущая за душу, и опыт проведения собесодований, леденящий душу. К сожалению, даже для людей со значительным опытом в разработке, вопрос «чем отличается абстрактный класс от интерфейса?» может стать поводом для несвязной речи и покраснения лица. Чтобы дать возможность людямПрочесть статью

Как получить информацию об установленных приложениях, их именах, пакетах, версиях и иконках //Класс описывающий приложение class ApplicationInfo { private String appname = ""; private String pname = ""; private String versionName = ""; private int versionCode = 0; private Drawable icon; private void prettyPrint() { Log.v(appname + "t" + pnameПрочесть статью

Начнем с вопроса — «Что такое и зачем нужен Singleton?». Singleton (Одиночка) — это порождающий шаблон проектирования. Singleton гарантирует, что у класса есть только один рабочий экземпляр и предоставляет к нему доступ одним единственным способом. Singleton доступен во всем приложении. При помощи «одиночек» очень органично описываются объеткы, которые явлюятся уникальнымиПрочесть статью

В прошлой статье посвященной JNI на Android я описывал как начать работу с Android NDK, в том числе, как вызывать нативные методы из Java, на этот раз я опишу как вызывать Java-методы из нативного кода. Для лучшего понимания этой статьи, рекомендую предварительно ознакомиться с основами JNI в Android. Сам процессПрочесть статью

Вы мечтаете о карьере разработчика для мобильных устройств? Готовы продираться через тернии изучения новой платформы (Mac, iOS) и быть на передовой современных информационных технологий? Вас не пугает суровый конкурсный отбор? Вы видите свое место в команде профессионалов высочайшего класса? Готовы работать в наиболее изменчивой (и поэтому наиболее требовательной) среде? ДляПрочесть статью

Суть проблемы Повторное использование кода – это хорошо. Если оно не сопряжено с копи-пастингом – это еще лучше. Поэтому в данной серии статей мы рассмотрим создание собственного класса-наследника View, с возможностью задания его свойств через xml-атрибуты в layout-файле контейнера. Это позволит использовать его в проекте повторно, не создавая тонны xml-копи-пасты. ВПрочесть статью

Для этого можно создать категорию на NSString // нужно подключить CommonDigest.h #import <CommonCrypto/CommonDigest.h> // и можно определить категорию на NSString @interface NSString (MD5_Hash) + (NSString *) md5String:(NSString*)concat; @end @implementation NSString (MD5_Hash) + (NSString *) md5String:(NSString*)concat { const char *concat_str = [concat UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(concat_str, strlen(concat_str), result); NSMutableString *hashПрочесть статью

С сегодняшнего дня у всех появилась большая кнопка «Написать» в верхнем правом углу. Теперь вы можете добавлять материал через достаточно простую и в тоже время приятную страницу. В данный момент мы проводим тестирование этой воможности. Поэтому если вы заметили неполадку или считаете что форму можно улучшить — пишите в комментариях.Прочесть статью