Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะใช้ฐานข้อมูล SQLite กับแอปพลิเคชัน Android ได้อย่างไร?


ตัวอย่างนี้สาธิตวิธีการใช้ฐานข้อมูล SQLite กับแอปพลิเคชัน Android

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

   

ขั้นตอนที่ 3 − สร้างคลาส Java ใหม่ (DataBaseManager) และเพิ่มรหัสต่อไปนี้ -

<ก่อนหน้า>นำเข้า android.content.ContentValues;นำเข้า android.content.Context;นำเข้า android.database.Cursor;นำเข้า android.database.SQLException;นำเข้า android.database.sqlite.SQLiteDatabase; DataBaseManager คลาสสาธารณะ {ฐานข้อมูลส่วนตัวผู้ช่วยฐานข้อมูลผู้ช่วย;บริบทส่วนตัว บริบท ฐานข้อมูล SQLiteDatabase ส่วนตัว DataBaseManager (บริบท c) { บริบท =c; } DataBaseManager open () พ่น SQLException { databaseHelper =ใหม่ DatabaseHelper (บริบท); ฐานข้อมูล =databaseHelper.getWritableDatabase(); ส่งคืนสิ่งนี้; } โมฆะสาธารณะปิด () { databaseHelper.close (); } แทรกเป็นโมฆะ (ชื่อสตริง, สตริง desc) { ContentValues ​​contentValue =ใหม่ ContentValues ​​(); contentValue.put(DatabaseHelper.SUBJECT ชื่อ); contentValue.put(DatabaseHelper.DESCRIPTION, desc); database.insert(DatabaseHelper.TABLE_NAME, null, contentValue); } ดึงเคอร์เซอร์ () { สตริง [] คอลัมน์ =สตริงใหม่ [] { DatabaseHelper._ID, DatabaseHelper.SUBJECT, DatabaseHelper.DESCRIPTION }; เคอร์เซอร์เคอร์เซอร์ =database.query (DatabaseHelper.TABLE_NAME, คอลัมน์, null, null, null, null, null); ถ้า (เคอร์เซอร์ !=null) { cursor.moveToFirst(); } ส่งคืนเคอร์เซอร์;} อัปเดต int สาธารณะ (ยาว _id ชื่อสตริง สตริง desc) { ContentValues ​​contentValues ​​=ใหม่ ContentValues ​​(); contentValues.put(DatabaseHelper.SUBJECT ชื่อ); contentValues.put(DatabaseHelper.DESCRIPTION, desc); ส่งคืน database.update (DatabaseHelper.TABLE_NAME, contentValues, DatabaseHelper._ID + " =" + _id, null);} public void delete (long _id) { database.delete (DatabaseHelper.TABLE_NAME, DatabaseHelper._ID + "=" + _id , null);}

ขั้นตอนที่ 4 − สร้างคลาส Java ใหม่ (DataBaseHelper) และเพิ่มโค้ดต่อไปนี้

นำเข้า android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;Class DatabaseHelper ขยาย SQLiteOpenHelper { สตริงสุดท้ายคงที่ TABLE_NAME ="FOOTBALLPLAYERS"; สตริงสุดท้ายคงที่ _ID ="_id"; สตริงสุดท้ายคงที่ SUBJECT ="หัวเรื่อง"; สตริงสุดท้ายแบบคงที่ DESCRIPTION ="คำอธิบาย"; สตริงสุดท้ายคงที่ส่วนตัว DB_NAME ="PLAYER_COUNTRIES.DB"; ส่วนตัวคงที่สุดท้าย int DB_VERSION =1; สตริงสุดท้ายคงที่ส่วนตัว CREATE_TABLE ="สร้างตาราง" + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT + " TEXT NOT NULL, " + DESCRIPTION + " TEXT);"; DatabaseHelper (บริบทบริบท) { super (บริบท, DB_NAME, null, DB_VERSION); } @แทนที่โมฆะสาธารณะ onCreate (SQLiteDatabase db) { db.execSQL (CREATE_TABLE); } @แทนที่โมฆะสาธารณะในการอัพเกรด (ฐานข้อมูล SQLiteDatabase, int oldVersion, int newVersion) { db.execSQL ("วางตารางหากมีอยู่" + TABLE_NAME); onCreate(db); }}

ขั้นตอนที่ 5 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

<ก่อนหน้า>นำเข้า android.content.Intent;นำเข้า android.database.Cursor;นำเข้า android.os.Bundle;นำเข้า android.view.Menu;นำเข้า android.view.MenuItem;นำเข้า android.view.View;นำเข้า android.widget AdapterView นำเข้า android.widget.ListView นำเข้า android.widget.SimpleCursorAdapter นำเข้า android.widget.TextView นำเข้า androidx.appcompat.app.AppCompatActivity คลาสสาธารณะ MainActivity ขยาย AppCompatActivity { DataBaseManager dataBaseManager; ListView listView; อะแดปเตอร์ SimpleCursorAdapter; สตริงสุดท้าย[] จาก =สตริงใหม่[]{DatabaseHelper._ID, DatabaseHelper.SUBJECT, DatabaseHelper.DESCRIPTION}; int สุดท้าย[] ถึง =int ใหม่[]{R.id.id, R.id.title, R.id.desc}; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); dataBaseManager =ใหม่ DataBaseManager (นี้); dataBaseManager.open(); เคอร์เซอร์เคอร์เซอร์ =dataBaseManager.fetch(); listView =findViewById (R.id.listView); listView.setEmptyView(findViewById(R.id.textView)); อะแดปเตอร์ =SimpleCursorAdapter ใหม่ (สิ่งนี้ R.layout.activity_view_record เคอร์เซอร์ จาก ถึง 0); adapter.notifyDataSetChanged(); listView.setAdapter (อะแดปเตอร์); listView.setOnItemClickListener (AdapterView.OnItemClickListener ใหม่ () { @Override public void onItemClick (AdapterView parent, ดูมุมมอง, ตำแหน่ง int, viewId แบบยาว) { TextView idTextView =view.findViewById (R.id.id); TextView titleTextView =view.findViewById(R.id.title); TextView descTextView =view.findViewById(R.id.desc); String id =idTextView.getText().toString(); ชื่อสตริง =titleTextView.getText().toString() สตริง desc =descTextView.getText().toString(); Intent modifiedIntent =new Intent(getApplicationContext(), ModifyPlayerActivity.class); modifiedIntent.putExtra("title", title); modifiedIntent.putExtra("desc", desc); modifiedIntent.putExtra("id", id); startActivity(modifyIntent); } }); } @ แทนที่บูลีนสาธารณะ onCreateOptionsMenu (เมนูเมนู) { getMenuInflater ().inflate (R.menu.main, เมนู); คืนค่าจริง; } @แทนที่บูลีนสาธารณะ onOptionsItemSelected (รายการเมนู) { int id =item.getItemId (); ถ้า (id ==R.id.addRecord) { เจตนา addPlayer =เจตนาใหม่ (สิ่งนี้ AddPlayerActivity.class); startActivity(addPlayer); } ส่งคืน super.onOptionsItemSelected(รายการ); }}

ขั้นตอนที่ 6 − สร้างสองกิจกรรม (AddPlayerActivity &ModifyPlayerActivity) และเพิ่มรหัสต่อไปนี้ -

AddPlayerActivity.java -

นำเข้า android.content.Intent;นำเข้า android.os.Bundle;นำเข้า android.view.View;นำเข้า android.widget.Button;นำเข้า android.widget.EditText;นำเข้า androidx.appcompat.app.AppCompatActivity;คลาสสาธารณะ AddPlayerActivity ขยาย AppCompatActivity ใช้View.OnClickListener { ปุ่ม btnAdd; แก้ไขข้อความแก้ไขหัวเรื่องส่วนตัว; แก้ไขข้อความแก้ไขคำอธิบายส่วนตัว; DataBaseManager ส่วนตัว dataBaseManager; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setTitle("เพิ่มบันทึก"); setContentView(R.layout.activity_addplayer); editSubject =findViewById(R.id.editTextSubject); editDescription =findViewById(R.id.editTextDescription); btnAdd =findViewById (R.id.add_record); dataBaseManager =ใหม่ DataBaseManager (นี้); dataBaseManager.open(); btnAdd.setOnClickListener (นี้); } @แทนที่โมฆะสาธารณะ onClick (ดู v) { ถ้า (v.getId () ==R.id.add_record) { ชื่อสตริงสุดท้าย =editSubject.getText ().toString (); สตริงสุดท้าย desc =editDescription.getText().toString(); dataBaseManager.insert(ชื่อ, คำอธิบาย); เจตนาหลัก =เจตนาใหม่ (AddPlayerActivity.this, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(หลัก); } }} 

activity_addplayer.xml −

      <ปุ่ม android:id="@+id/add_record" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity ="center" android:text="เพิ่มบันทึก" /> 

ModifyPlayerActivity -

นำเข้า androidx.appcompat.app.AppCompatActivity;นำเข้า android.content.Intent;นำเข้า android.os.Bundle;นำเข้า android.view.View;นำเข้า android.widget.Button;นำเข้า android.widget.EditText;คลาสสาธารณะ ModifyPlayerActivity ขยาย AppCompatActivity ใช้View.OnClickListener { EditText editTextSub; ปุ่ม updateBtn, deleteBtn; แก้ไขข้อความ แก้ไขข้อความ Desc; ส่วนตัวยาว _id; DataBaseManager dataBaseManager; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setTitle("แก้ไขบันทึก"); setContentView(R.layout.activity_modify_player); dataBaseManager =ใหม่ DataBaseManager (นี้); dataBaseManager.open(); editTextSub =findViewById(R.id.editTextSub); editTextDesc =findViewById(R.id.editTextDesc); updateBtn =findViewById(R.id.btnUpdate); deleteBtn =findViewById(R.id.btnDelete); เจตนาเจตนา =getIntent(); id สตริง =Intent.getStringExtra("id"); ชื่อสตริง =Intent.getStringExtra("หัวเรื่อง"); สตริง desc =Intent.getStringExtra("desc"); _id =Long.parseLong(id); editTextSub.setText(ชื่อ); editTextDesc.setText(desc); updateBtn.setOnClickListener(นี้); deleteBtn.setOnClickListener(นี้); } @แทนที่โมฆะสาธารณะ onClick (ดู v) { สวิตช์ (v.getId ()) { กรณี R.id.btnUpdate:ชื่อสตริง =editTextSub.getText ().toString (); สตริง desc =editTextDesc.getText().toString(); dataBaseManager.update(_id, ชื่อ, คำอธิบาย); this.returnHome(); หยุดพัก; กรณี R.id.btnDelete:dataBaseManager.delete(_id); this.returnHome(); หยุดพัก; } } public void returnHome() { Intent home_intent =new Intent(getApplicationContext(), MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(home_intent); }} 

activity_modify_player.xml -

     <ปุ่ม android:id="@+id/btnUpdate" android:layout_width="wrap_content" android:layout_height="wrap_content" andr oid:layout_weight="1" android:text="อัปเดต" /> <ปุ่ม android:id="@+id/btnDelete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Delete" /> 

ขั้นตอนที่ 7 − สร้างไฟล์ทรัพยากรเลย์เอาต์ (action_view_record.xml) และเพิ่มรหัสต่อไปนี้ -

   

ขั้นตอนที่ 8 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml

      <หมวดหมู่ android:name="android.intent.category.LAUNCHER" />    

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -

จะใช้ฐานข้อมูล SQLite กับแอปพลิเคชัน Android ได้อย่างไร?

จะใช้ฐานข้อมูล SQLite กับแอปพลิเคชัน Android ได้อย่างไร?