II.2. Android OT da dars jadvali dasturini yaratish




Download 0,95 Mb.
Pdf ko'rish
bet7/12
Sana28.07.2024
Hajmi0,95 Mb.
#268859
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
android operatsion tizimida dars jadvali yaratish

II.2. Android OT da dars jadvali dasturini yaratish. 
Dars jadvali dasturini yaratishda bizga quyidagi bilimlar kerak bo‘ladi: 
1. Androidda oynalar bilan ishlash (Intentlar) 
2. Androidda ma‘lumotlar ombori bilan ishlash (SQLite) 
3. Androidda formalar bilan ishlash (View) 
4. Androidda tizim resurslari bilan ishlash (Time, Date) 
Intentlar bu Android dasturidagi oynalarni boshqaruvchi maxsus obyekt 
bo‘lib, bir oynadan ikkinchi oynani chaqirish, oyna holatlarini boshqarish, oynani 
yopish, oynani o‘chirib tashlash kabi amallarni bajaradi. 
Androidda tuziladigan dasturlarning aksariyati ko‘p oynali dasturlar 
hisoblanadi. Masalan, biror bir foydali dastur yaratganimizdan so‘ng, 
foydalanuvchi dasturning muallifi haqida ma‘lumot olmoqchi bo‘lsa, ―Dastur 
haqida‖ tugmasini bosganda dastur haqida to‘liq ma‘lumot beruvchi oynaga tushib 


40 
qoladi. Bu veb sahifalarda gipermatn orqali birinchisidan ikkinchisiga o‘tishga 
juda o‘xshaydi. Oddiy misol orqali bir oynadan ikkinchisiga o‘tilishi quyidagicha 
bajariladi. 
Eclipseda yangi proyekt yaratib, unda yangi XML layout yaratamiz va 
about.xml deb nomlaymiz. Bu faylni quyidagi XML kod bilan to‘ldiramiz. 
 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dip"> 
android:id="@+id/about_content" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/about_text" /> 
 
Ma‘lumot oldindan e‘lon qilingan o‘zgarmaslarda olinadi. Shuning uchun bu 
o‘zgarmaslarni res/values/strings.xml faylida e‘lon qilib qo‘yamiz. 
 
Dars jadvali dasturiga xush kelibsiz 
Endi oyna sarlavhasi uchun o‘zgarmas e‘lon qilinadi. 
Dastur haqida 
So‘ngra dastur kodlarini yozish uchun yangi Class yaratiladi va uni 
AboutActivity.java deb nomlaymiz. Ichida quyidagi kod yoziladi. 
package dars.jadvali.helloworld; 
import android.app.Activity; 
import android.os.Bundle; 
public class AboutActivity extends Activity



41 
@Override 
protected void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState); 
setContentView(R.layout.about); 


Bu klassda eng asosiy metod bu onCreate() va setContentView() metodlaridir. 
Chunki aynan ular klass yaratilayotgan vaqtda kerakli ma‘lumotni ko‘rsatish uchun 
xizmat qiladi. Endi Helloworld.java klassi orqali undagi tugma bosilganda 
AboutActivity.java ga o‘tish kodlari yoziladi. Bunda bizlarga Intent klassi qo‘l 
keladi. 
import android.content.Intent; 
Tugma uchun Click metodini yozamiz: 
public void onClick(View v) 

Intent intent = new Intent(HelloWorld.this, AboutActivity.class); 
startActivity(intent); 

Yangi oyna yuklanishi uchun Intent klassida AboutActivity klassini ko‘rsatib 
qo‘yish kerak bo‘ladi. Undan so‘ng startActivity() metodi chaqiriladi. Undan oldin 
esa yangi Activity klassni AndroidManifest.xml ga kiritib qo‘yish kerak bo‘ladi. 
android:label="@string/about_title"> 
 
Emulyatorni ishga tushirib natijani ko‘rishimiz mumkin. 


42 
2.2.1-rasm. Dasturni ochilishi 
Android 
ma‘lumotlar bazasi bilan ishlash mexanizmi strukturali 
informatsiyalarni qayta ishlash va saqlash imkoniyati mavjud. Istalgan ilova o‘ziga 
tegishli ma‘lumotlar bazasini yaratishi va ular ustida to‘liq nazorat qila oladi. 
Android SQLite kutubxonasidan foydalanib, MBBT ma‘lumotlarini o‘zidan 
ko‘rsatib, quyidagi o‘ziga xos xususiyatlarga ega: ko‘lami kengligi (open source), 
tranzaksiya va so‘rovlarning standart tili, osonligi va bir xil darajaliligi. 
Kursorlar (Cursor) vaContentValues 
So‘rovlar MBBTga Cursor tipining obyektlarini qaytaradi. Resurslar 
tejamkorligi uchun ma‘lumotlar qabul qilanayotganda MBBTdan ularning 
qiymatlarini qaytarmaydi. Cursor yaratilayotganda esa dastlabki ma‘lumotlarning 
to‘plamiga yo‘l beradi. Cursor obyektining metodlari har xil navigatsiya 
imkoniyatlarini taqdim etadi: 
-moveToFirst; 
-moveToNext; 


43 
-moveToPrevious; 
-getCount; 
-getColumnIndexOrThrow; 
-getColumnName; 
-getColumnNames; 
-moveToPosition; 
-getPosotion; 
MBBT jadvallariga ma‘lumotlarni qo‘shishda ContentValues sinfining 
obyektlari ishlatiladi. Har bir shunday obyekt jadvalda bir satr ma‘lumotlarini o‘z 
ichiga oladi.
SQLite MBBT bilan ishlash 
Ilova yaratilishida MBBTdan foydalaniladi. Ko‘p hodisalarda ORM (Object-
Relationship Mapping) deb nomlanuvchi qulay instrumentalar ishlatiladi. Berilgan 
ma‘lumotlarni obyektlarga bir yoki bir necha jadvallarga joylashtirish dasturlash 
tilida beriladi. Bundan tashqari ORM MBBT bilan birgalikda majburiyatlarni o‘zi-
ga olib, jadval strukturasini va konkertlikdan qochib eng muhim tomonlaridan 
foydalanishga harakat qiladi. Afsuski, hozirgi vaqtda ORM mobil platformasining 
kuchi chegaralanganligi bois androidda amaliyotda qo‘llanilamaydi. Ilova ishlashi-
da aql bilan yondashish MBBT bilan barcha o‘zaro aloqalarni bir sinfda inkapsyu-
latsiya qilishdir. Metodlar esa ilova qolgan komponentlarning kerakli xizmatlarini 
bajaradi.Yaxshi amaliyot MBBTdan o‘zining ishiga olib, yordamchi sinfining 
yaratilishidan iborat. Mazkur sinf odatda ma‘lumotlar bazasi bilan o‘zaro birgalik-
da inkapsyulatsiya bo‘lib, obyektlarni qo‘shish, o‘chirish va o‘zgartirishning o‘ziga 
xos usullarni intuitive ravishda qat‘iy mazmunini beradi. Ma‘lumotlar bazasi 
adapteri shuningdek ma‘lumotlar bazasini yaratish, yopish va ochish uchun 
metodlarni hammasini aniqlaydi va ma‘lumotlar bazasiga so‘rovlarni qayta 
ishlashga yuboradi. Adapterning ishlashi pastda berilgan. 
public class SampleDBAdapter { 
private static final String DATABASE_NAME = "SampleDatabase.db"; 
private static final String DATABASE_TABLE = "SampleTable"; 


44 
private static final intDATABASE_VERSION = 1; 
// Indeks ustunining nomi 
public static final String KEY_ID = "_id"; 
// Har bir ustun uchun nom berish
public static final String KEY_NAME = "name"; 
public static final intNAME_COLUMN = 1; 
// MBni yaratish uchun SQL- so‘rov 
private static final String DATABASE_CREATE = "create table " 
+ DATABASE_TABLE + " (" + KEY_ID 
+ " integer primary key autoincrement, " + KEY_NAME 
+ " textnotnull);"; 
// MB obyektini saqlash uchun o‘zgaruvchi 
private SQLiteDatabasedb;
// Dastur konteksti
private finalContextcontext; 
// MBni yangilash va ochish uchun yordamchi klass 
private myDbHelperdbHelper; 
// Konstruktor 
public SampleDBAdapter(Context _context) { 
context = _context; 
dbHelper = new myDbHelper(context, DATABASE_NAME, null, 
DATABASE_VERSION); 

// Ma‘lumotlar omboriga kirish 
public SampleDBAdapter open() throws SQLException { 
try { 
db = dbHelper.getWritableDatabase(); 
}
catch (SQLiteException e) { 
db = dbHelper.getReadableDatabase(); 


45 

return this; 

// Mbni yopish 
public void close() { 
db.close(); 

// Ma‘lumotlarni qo‘shish metodi, bu metod ma‘lumot indeksini qaytaradi. 
public long insertEntry(SampleObject _SampleObject) { 
// Bu yerda o‘z ichida kerakli ma‘lumotlar joylashgan va MBga qo‘yilishi 
//rejalashtirilgan ContentValues obyekti yasaladi 
returnindex; 

// Indeksi bo‘yicha ma‘lumotni o‘chirish 
public booleanremoveEntry(long _rowIndex) { 
returndb.delete(DATABASE_TABLE, KEY_ID + "=" +
_rowIndex, null) > 0; 

// Barcha ma‘lumotlarni olish metodi 
public Cursor getAllEntries() { 
returndb.query(DATABASE_TABLE, 
new 
String[] 

KEY_ID, 
KEY_NAME }, 
null, null, null, null, null); 

// indeksi bo'yicha obyektning ekzemplyarni natija sifatida qaytaradi 
public SampleObjectgetEntry(long _rowIndex) { 
// kursorni qabul qiladi, MBdan kerakli ma‘lumotlarni ko‘rasatadi 
returnobjectInstance; 

// Indeks bo‘yicha obyektni o‘zgartirish 


46 
public boolean updateEntry(long _rowIndex, SampleObject _SampleObject) 

// SampleObject asosida ContentValues obyektini yasash 
// jadvalda satrni yangilash uchun qo‘llash 
return true; // Yangilansa true, aks holda false 

// Mbni ochish va yangilash uchun yordamchi klass 
private static class myDbHelperextends SQLiteOpenHelper { 
public myDbHelper(Context context, String name,
CursorFactory factory, intversion) { 
super(context, name, factory, version); 

@Override 
public void onUpgrade(SQLiteDatabase _db, int_oldVersion, 
int_newVersion) { 
// ma‘lumtlarni jurnalga qayd qilib borish 
Log.w("TaskDBAdapter", "Upgrading from version " + _oldVersion 
+ " to " + _newVersion 
+ ", which will destroy all old data"); 

Download 0,95 Mb.
1   2   3   4   5   6   7   8   9   ...   12




Download 0,95 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



II.2. Android OT da dars jadvali dasturini yaratish

Download 0,95 Mb.
Pdf ko'rish