Розробка мобільного мульти-медіа додатку на базі платформи Android для радіостанції "Просто радіо" - Розробка програмного забезпечення для відтворення файлів мультимедіа для Windows Phone

У додатках під Android використовуються бази даних SQLite, які являють собою один з п'яти способів зберігання даних в Android-. Ми будемо розглядати тільки бази даних SQLite, оскільки це і є основа побудови робочої і функціональної програми. Після освоєння цього посту ви зможете вставляти дані з таблиць в бази даних, і проводити їх відбір.

Почнемо зі створення нового проекту під назвою PROSTO-FM. У першій частині нашої серії статей про Android-розробках процес створення нового проекту був детально описаний, так що зупинятися на покрокової інструкції знову ми не будемо. Дані, які необхідно внести в форму створення нового проекту наступні:

Назва проекту: PROSTO-FM

Побудувати об'єкт: Android 1.5

Ім'я програми: PROSTO-FM

Ім'я пакету: com. gregjacobs. randomquotes

Створення активність: QuotesMain

Мін SDK Версія: 3

створення нового проекту

Рис. 3.1 Створення нового проекту

Після введення даних і натискання на кнопку Готово приступимо до створення файлу класу в нашому пакеті під назвою com. gregjacobs. randomquotes. Для цього потрібно натиснути правою кнопкою миші на пакеті, вибрати в меню Новий, потім клас. У вікні потрібно заповнити лише поле Ім'я, ввівши в нього DBAdapter. Далі тиснемо Finish і отримуємо базовий файл для класу, який нам належить трохи видозмінити. У цьому розділі я буду діяти також, як і в попередньому: спочатку наведу код, а потім поясню основні його частини, призначення головних функцій. В додаток в цей раз я приведу текстові файли, так щоб ви могли з завантажити і порівняти зі своїм варіантом.

Почнемо з файлу DBAdapter. java:

вигляд головного вікна програми

Рис.3.2 Вигляд головного вікна програми

Почнемо з імпорту всіх інструментів, які знадобляться для створення і функціонування нашої бази даних SQLite. Можливо, професійним програмістам не знадобляться подальші пояснення, що означає кожен рядок, але для початківців вони будуть корисними. Отже, СontentValues дає можливість зберігати набір значень для операторів вставити (оператор вставки), контекст, як вже було сказано в попередньому пості, дає доступ до середовища додатки. Курсор-напевно, самий потрібний імпорт з усіх. Курсор дозволяє мати доступ до даних, отриманих з БД. SQLException дозволяє викидати SQL виключення при появі помилки. Ці повідомлення дозволяють зрозуміти, чим конкретно викликана помилка. SQLiteDatabase дає можливість керувати базою даних SQLite, використовуючи методи. SQLiteOpenHelper являє собою клас-помічник в управлінні БД. Ввійти буде Залогуватися виведення даних у разі виникнення помилки.

" public class DBAdapter

{

Int id = 0;

Public static final String KEY_ROWID = "_id";

Public static final String KEY_QUOTE = "Quote";

Private static final String TAG = "DBAdapter";

Private static final String DATABASE_NAME = "Random";

Private static final String DATABASE_TABLE = "tblRandomQuotes";

Private static final int DATABASE_VERSION = 1;

Private static final String DATABASE_CREATE =

"create table tblRandomQuotes (_id integer primary key autoincrement, "

+ "Quote text not null );";

Private final Context context;

Private DatabaseHelper DBHelper;

Private SQLiteDatabase db; "

Лістинг 1. Код програми для визначення використовуваних змінних

Тут ми визначаємо всі потрібні нам змінні, починаючи з назви бази даних і закінчуючи запитом створення самої бази даних. Ми використовуємо остаточне змінні т. к. їх значення не будуть змінюватися в ході роботи програми, але при цьому, виносимо змінні начебто імен таблиці в окремі змінні, щоб полегшити модифікацію програми надалі.

"

Public DBAdapter(Context ctx)

{

This. context = ctx;

DBHelper = new DatabaseHelper(context);

}

Vate static class DatabaseHelper extends SQLiteOpenHelper

{

DatabaseHelper(Context context)

{

Super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

Public void onCreate(SQLiteDatabase db)

{

Db. execSQL(DATABASE_CREATE);

}

@Override

Public void onUpgrade(SQLiteDatabase db, int oldVersion,

Int newVersion)

{

Log. w(TAG, "Upgrading database from version " + oldVersion

+ " to "

+ newVersion + ", which will destroy all old data");

Db. execSQL("DROP TABLE IF EXISTS tblRandomQuotes");

OnCreate(db); }

}

"

Лістинг 3.2 Код програми для визначення конструкторів

У вищевказаному фрагменті коду ми визначаємо конструктор, який буде передавати контекст пропозиції нашому помічникові, DatabaseHelper. Клас DatabaseHelper розширює возмошності нашого SQLiteOpenHelper, який покращує функціонал управління базою даних SQLite. Функція OnCreate дозволяє виконати SQL-запит по створенню бази даних.

Public DBAdapter open() throws SQLException

{

Db = DBHelper. getWritableDatabase();

Return this;

}

Public void close()

{

DBHelper. close();

}

Лістинг 3.3 Функції відкриття та закриття бази даних

У коді вище є дві ключових функції відкриття і закриття бази даних. На ці функції можна посилатися при виклику їх у нашому головному. Java файлі.

Public long insertQuote(String Quote)

{

ContentValues initialValues = new ContentValues();

InitialValues. put(KEY_QUOTE, Quote);

Return db. insert(DATABASE_TABLE, null, initialValues);

}

Лістинг 3.4. Функція для додавання цитат до бази даних

Вище описана функція обробляє наші цитати, коли ми викликаємо їх в головному. Java файлі. Також ця функція готує цитати для введення в БД, поміщаючи рядок Цитата в ContentValues під назвою initialValues, які потім вставляються в таблицю БД.

Public int getAllEntries()

{

Cursor cursor = db. rawQuery(

"SELECT COUNT(Quote) FROM tblRandomQuotes", null);

If(cursor. moveToFirst()) {

Return cursor. getInt(0);

}

Return cursor. getInt(0);

}

Лістинг 3.5 Функція запиту

Ця функція буде виконувати запит на кількість введених в БД цитат для передачі цього значення як максимально можливого генератору випадкових чисел. Таким вдасться уникнути помилки ( обраний номер цитати ніколи не буде перевищувати максимально можливий) . Ми в основному використовуємо в роботі тип запиту rawQuery, але я вражений можливістю використання повнофункціональних SQL - запитів. Умова "якщо" змусить покажчик прийняти перший результат ( якщо буде знайдено кілька результатів). Якщо умова "якщо" не дійсно, все одно за результат прийметься значення першої позиції.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas. android. com/apk/res/android"

Android:orientation="vertical"

Android:layout_width="fill_parent"

Android:layout_height="fill_parent"

>

<TextView

Android:layout_width="fill_parent"

Android:layout_height="wrap_content"

Android:text="@string/Quote"

/>

<EditText

Android:id="@+id/Quote"

Android:layout_width="fill_parent"

Android:layout_height="wrap_content"

/>

<Button

Android:id="@+id/go"

Android:layout_width="fill_parent"

Android:layout_height="wrap_content"

Android:text="@string/press"

/>

<Button

Android:id="@+id/genRan"

Android:layout_width="fill_parent"

Android:layout_height="wrap_content"

Android:text="@string/genRan"

/>

</LinearLayout>

Лістинг 3.6 Приклад коду для візуального оформлення першої версії програми

Рис. 3.1 Візуальне оформлення першої версії програми

Похожие статьи




Розробка мобільного мульти-медіа додатку на базі платформи Android для радіостанції "Просто радіо" - Розробка програмного забезпечення для відтворення файлів мультимедіа для Windows Phone

Предыдущая | Следующая