lab2 instrukcja

background image

Programowanie dla technologii bezprzewodowych

mgr Paweł Cudek

Programowanie dla technologii bezprzewodowych

Laboratorium 2

Cele:

Baza danych SQLite

Zadania

Materiały do zadao znajdują się na dysku wspólnym w katalogu PCudek\ Programowanie dla technologii
bezprzewodowych\Lab 3
.
Obraz wirtualnego systemu operacyjnego Win XP na którym należy wykonad zadania znajduje się w katalogu
PCudek\ Programowanie dla technologii bezprzewodowych\ Win_XP_Android

1. Skopiuj i uruchom wirtualną maszynę.

Po uruchomieniu zmieo nazwę komputera w sieci na wNUMER_INDEKSU (Start->Mój komputer-
>Właściwości ->Nazwa komputera->Zmień)

2. Uruchom program Eclipse wpisując w adresie obszaru roboczego (workspace) D:\@projekty\lab3 .

Sprawdź czy środowisko programistyczne jest przygotowane do uruchomienia projektu wykonując
następujące czynności:

a) Window ->Preferences->Android->SDK Location: C:\PROGRA~1\Android\android-sdk

UWAGA!!! Pamiętaj aby nazwę „Program Files” zamienid na PROGRA~1 lub w przypadku ”
Program Files (86)” na PROGRA~2

b) Window ->Android SDK and AVD Manager: sprawdź czy na liście wirtualnych urządzeo znajduje

się urządzenie, które zamierzasz wykorzystad w projekcie

3. Wybierając File->New->Other utwórz nowy „Android project” z następującymi ustawieniami:

Project name: database
Build Target: Android 2.1
Aplication name: Database
Package name: pl.wsiz.database
Craeate Activity: DatabaseActivity
Min SDK Version: 7

4. W pliku DatabaseActivity.java utwórz bazę danych SQLite dodając następujące linie kodu:

import

android.database.sqlite.SQLiteDatabase;

//zmienna stanowiąca uchwyt do bazy danych

private

SQLiteDatabase

sampleDB

;

W metodzie onCreate dodaj kod
//utworzenie bazy danych w pliku o nazwie sampleDB

sampleDB

=

this

.openOrCreateDatabase(

"sampleDB"

, SQLiteDatabase.

CREATE_IF_NECESSARY

,

null

);

//ustawienia bazy

sampleDB

.setVersion(1);

sampleDB

.setLocale(Locale.getDefault());

background image

Programowanie dla technologii bezprzewodowych

mgr Paweł Cudek

sampleDB

.setLockingEnabled(

true

);

//zapytanie tworzące tabele
String createTable=

"CREATE TABLE IF NOT EXISTS USER (id int, name varchar, password

varchar);"

;

//wykonanie zapytania

sampleDB

.execSQL(createTable);

5. Przygotuj konfigurację uruchomieniową I uruchom emulator.

Po wyświetleniu ekranu naszej aplikacji przejdź do perspektyw DDMS (Window->Open perspective-
>DDMS). Dla uruchomionego emulatora otwórz zakładkę File Explorer i sprawdź czy istnieje plik bazy
danych sampleDB w lokalizacji /data/data/pl.wsiz.database/database

6. Połącz się z bazą danych wykorzystując narzędzia SDK

Uruchom wiersz poleceo Start->Uruchom->cmd
Sprawdź nazwę emulatora w perspektywie DDMS (prawdopodobnie będzie to emulator-5554) i
uruchom aplikacje adb.exe wpisując:
Ścieżka do Android SDK\platform-tools\adb.exe –s emulator-5554 shell
Wywołanie tego polecenie pozwoli nam poruszad się w systemie naszego emulatora.
Wywołaj polecenie listujące zawartośd katalogu:
ls /data/data/pl.wsiz.database/databases
Uruchom program do obsługi bazy wpisując sqlite3 /data/data/pl.wsiz.database/databases/sampleDB.
Poleceniem .table sprawdź czy na liście tabel widnieje tabela o nazwie USER.

7. Przygotuj nowe Activity w następujących krokach

a) w res/layout utwórz plik insert.xml
b) w src/pl.wsiz.database utwórz plik InsertActivity.java dziedziczący z klasy

android.app.Activity,

który będzie wczytywał zawartośc pliku insert.xml

package

pl.wsiz.database;

import

android.app.Activity;

import

android.os.Bundle;

public

class

InsertActivity

extends

Activity {

/** Called when the activity is first created. */

@Override

public

void

onCreate(Bundle savedInstanceState) {

super

.onCreate(savedInstanceState);

setContentView(R.layout.

insert

);

}

}

c) Powtórz kod związany z utworzeniem obiektu bazy. (bez tworzenia tabeli)
d) Zarejestruj nowe activity w pliku AndroidManifest.xml dopisując:

<

activity

android:name

=

".InsertActivity"

></

activity

>

8.

W pliku main.xml dodaj nowy przycisk:

<

Button

android:text

=

"Button"

android:id

=

"@+id/insertButton"

android:layout_width

=

"fill_parent"

background image

Programowanie dla technologii bezprzewodowych

mgr Paweł Cudek

android:layout_height

=

"wrap_content"

/>

9.

W pliku DatabaseActivity.java

a)

dodaj zmienną

private

Button

insertButton

;


b) przechwyd do niej element interfejsu w metodzie onCreate

insertButton

= (Button)findViewById(R.id.

insertButton

);


c) dodaj

„słuchacza kliknięd” (

setOnClickListener)

insertButton

.setOnClickListener(

new

View.OnClickListener() {

public

void

onClick(View v) {

switchToInsertActivity();

}

});

metoda switchToInsertActivity służy do wywołania InsertAvtivity i ma następującą postad:

private

void

switchToInsertActivity()

{
Intent intent =

null

;

intent =

new

Intent(

this

, InsertActivity.

class

);

startActivity(intent);

}

Uruchom aplikację i sprawdź czy następuje przełączenie ekranów.

10.

Do pliku insert.xml dodaj trzy pola tekstowe i dwa przyciski:

<

EditText

android:text

=

"ID"

android:id

=

"@+id/textid"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

/>

/>

<

EditText

android:text

=

"Imię"

android:id

=

"@+id/textname"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

/>

/>

<

EditText

android:text

=

"Hasło"

android:id

=

"@+id/textpassword"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

/>

/>

<

Button

android:text

=

"Dodaj"

android:id

=

"@+id/addButton"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

/>


<

Button

android:text

=

"Powrót"

android:id

=

"@+id/toMain"

background image

Programowanie dla technologii bezprzewodowych

mgr Paweł Cudek

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

/>

11.

W pliku InsertActivity.java dodaj zmienne związane z nowo utworzonymi elementami interfejsu

private

EditText

textId

;

private

EditText

textName

;

private

EditText

textPassword

;

private

Button

addButton

;

private

Button

toMainButton

;

oraz w metodzie onCreate

textId

= (EditText)findViewById(R.id.

textid

);

textName

= (EditText)findViewById(R.id.

textname

);

textPassword

= (EditText)findViewById(R.id.

textpassword

);

addButton

= (Button)findViewById(R.id.

addButton

);

toMainButton

= (Button)findViewById(R.id.

toMainButton

);

12. W pliku InsertActivity.java dodaj „słuchacza kliknięd” (

setOnClickListener)

dla przycisku addButton,

który będzie zapisywał dane do tabeli.

addButton

.setOnClickListener(

new

View.OnClickListener() {

public

void

onClick(View v) {

int

id = Integer.parseInt(

textId

.getText().toString());

String name =

textName

.getText().toString();

String password =

textPassword

.getText().toString();

//String sqlInsert =" INSERT INTO USER VALUES ("+id+",'"+name+"',

'"+password+"');";

//sampleDB.execSQL(sqlInsert)

ContentValues values =

new

ContentValues();

values.put(

"id"

, id);

values.put(

"name"

, name);

values.put(

"password"

, password);

sampleDB

.insert(

"USER"

,

""

, values);

Toast.makeText(getApplicationContext(),

"Dodano rekord"

,

Toast.

LENGTH_LONG

).show();

textId

.setText(

""

); //czyszczenie pola

textName

.setText(

""

);//czyszczenie pola

textPassword

.setText(

""

);//czyszczenie pola

Log.d(

"RESULT"

,

"-----------------DODANO REKORD---------------"

);

}

});

Zwród uwagę na działanie Toast.makeText oraz Log.d (Wynik będzie widoczny w perspektywie DDMS-

>LogCat).

13. Po uruchomieniu aplikacji i dodaniu rekordu wykonaj czynności z punktu 6 i wykonaj zapytanie SELECT *

FROM USER; W tabeli powinien znaleźd się nowy rekord.

14. W plikach InsertActivity.java oraz DatabaseActivity.java

nadpisz metodę onStop()

@Override

protected

void

onStop()

{

super

.onStop();

sampleDB

.close();

}

15. Wzorując

się na punkcie 9 napisz kod który po naciśnięciu przycisku

toMainButton

pozwoli przejść do

DatabaseActivity.

background image

Programowanie dla technologii bezprzewodowych

mgr Paweł Cudek

16. Wzorując się na punkcie 7 utwórz nowe activity o nazwie ReadDatabaseActivity zawierające kontrolkę

TextView o atrybucie android: id=”@+id/tabeContent”. Zadaniem tego ekranu powinno byd wczytanie
do TextView zawartości bazy danych.
Kod do pobierania zawartości bazy jest następujący:

String query =

"SELECT * FROM USER;"

;

Cursor cursor =

sampleDB

.rawQuery(query,

null

);


cursor.moveToFirst();

while

(cursor.moveToNext())

{

int

id = cursor.getInt(cursor.getColumnIndex(

"id"

));

String name = cursor.getString(cursor.getColumnIndex(

"name"

));

String password = cursor.getString(cursor.getColumnIndex(

"password"

));

//kod dodający tekst do TextView

}


Dodaj przycisk powrotu do DatabaseActivity.
W activity DatabaseActivity dodaj przycisk, który pozwoli przejśd do nowo utworzonego actvity.


Wyszukiwarka

Podobne podstrony:
Lab2 Instrukcja id 259301 Nieznany
lab2 Instrukcja P2 C P id 75048 Nieznany
Lab2 instrukcje
lab2 instrukcja
Instrukcja IEF Algorytmy i struktury danych lab2
Instrukcja lab2
Instrukcja Lab2 id 216873 Nieznany
Instrukcja lab2
Instrukcja lab2
Instrukcja Ptel Lab2
Instrukcja IEF Algorytmy i struktury danych lab2
wykład 6 instrukcje i informacje zwrotne

więcej podobnych podstron