ตัวอย่างนี้สาธิตวิธีใช้ recyclerview กับฐานข้อมูลใน Android โดยใช้ Kotlin
ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่
ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml
<ปุ่ม android:id="@+id/ btnAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_marginEnd="16dp" android:layout_marginBottom="4dp" android:padding="2dp" android:text="เพิ่ม" />
ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.kt
<ก่อนหน้า>นำเข้า android.os.Bundleimport android.text.TextUtilsimport android.view.LayoutInflaterimport android.view.Viewimport android.widget.Buttonimport android.widget.EditTextimport android.widget.Toastimport androidx.appcompat.app.AlertDialogimpat androidx.appcom app.AppCompatActivityimport androidx.recyclerview.widget.LinearLayoutManagerimport androidx.recyclerview.widget.RecyclerViewclass MainActivity :AppCompatActivity () { lateinit ส่วนตัว var dataBase:SqliteDatabase override fun on Create (savedInstanceState:Bundle?) { super.stanceConCreatet .activity_main) title ="KotlinApp" กับ contactView:RecyclerView =findViewById(R.id.myContactList) val linearLayoutManager =LinearLayoutManager (นี้) contactView.layoutManager =linearLayoutManager contactView.setHasFixedSize(true) dataBase =Contact Sqlite>database () ถ้า (allContacts.size> 0) { contactView.visibility =V iew.VISIBLE val mAdapter =ContactAdapter (นี่ allContacts) contactView.adapter =mAdapter } อื่น { contactView.visibility =View.GONE Toast.makeText ( นี่ "ไม่มีผู้ติดต่อในฐานข้อมูล เริ่มเพิ่มเดี๋ยวนี้", Toast.LENGTH_LONG ).show() } val btnAdd:Button =findViewById(R.id.btnAdd) btnAdd.setOnClickListener { addTaskDialog() } } ความสนุกส่วนตัว addTaskDialog () { val inflater =LayoutInflater.from (นี่ ) val subView =inflater.inflate(R.layout.add_contacts, null) val nameField:EditText =subView.findViewById(R.id.enterName) val noField:EditText =subView.findViewById(R.id.enterPhoneNum) val builder =AlertDialog .Builder (นี้) builder.setTitle ("เพิ่มผู้ติดต่อใหม่") builder.setView (subView) builder.create () builder.setPositiveButton ("เพิ่มผู้ติดต่อ") { _, _ -> val name =nameField.text.toString ( ) val phoneNum =noField.text.toString() if (TextUtils.isEmpty(name)) { Toast.makeText( this@MainActivity, "มีบางอย่างผิดพลาด ตรวจสอบค่าที่คุณป้อน", Toast.LENGTH_LONG ).show() } else { val newContact =ผู้ติดต่อ (ชื่อ, โทรศัพท์ Num) dataBase.addContacts(newContact) finish() startActivity(intent) } } builder.setNegativeButton("CANCEL") { _, _ -> Toast.makeText(this@MainActivity, "Task cancelled",Toast.LENGTH_LONG).show ()} builder.show() } แทนที่ความสนุก onDestroy() { super.onDestroy() dataBase.close() }}ขั้นตอนที่ 4 − สร้างไฟล์คลาส kotlin ตามที่ระบุด้านล่างและเพิ่มรหัสที่เกี่ยวข้อง
Contacts.kt −
คลาสผู้ติดต่อ { var id =0 ชื่อ var:สตริง var phno:ตัวสร้างสตริงภายใน (ชื่อ:สตริง phno:สตริง) { this.name =ชื่อ this.phno =phno } คอนสตรัคเตอร์ภายใน (id:Int ชื่อ:สตริง phno:สตริง) { this.id =id this.name =ชื่อ this.phno =phno }}
ContactViewHolder.kt −
นำเข้า android.view.Viewimport android.widget.ImageViewimport android.widget.TextViewimport androidx.recyclerview.widget.RecyclerViewclass ContactViewHolder (itemView:View) :RecyclerView.ViewHolder (itemView) { var tvName:TextView =itemView.findViewById (R .id.contactName) var tvPhoneNum:TextView =itemView.findViewById(R.id.phoneNum) var deleteContact:ImageView =itemView.findViewById(R.id.deleteContact) var editContact:ImageView =itemView.findViewById(R.id.editContact) }
ContactAdapter.kt −
<ก่อนหน้า>นำเข้า android.app.Activityimport android.content.Contextimport android.text.TextUtilsimport android.view.LayoutInflaterimport android.view.ViewGroupimport android.widget.EditTextimport android.widget.Filterimport android.widget.Filterableimport android.widget.Toastimport android .appcompat.app.AlertDialogimport androidx.recyclerview.widget.RecyclerViewimport java.util. * ContactAdapter คลาสภายใน (บริบท val ส่วนตัว:บริบท, listContacts:ArrayList <รายชื่อติดต่อ>) :RecyclerView.AdapterSqliteDatabase.kt −
นำเข้า android.content.ContentValuesimport android.content.Contextimport android.database.sqlite.SQLiteDatabaseimport android.database.sqlite.SQLiteOpenHelperimport java.util.*class SqliteDatabase คอนสตรัคเตอร์ภายใน (บริบท:Context_) :SQLiteOpenHelper บริบท (บริบท) null, DATABASE_VERSION) { แทนที่ความสนุกบนสร้าง (db:SQLiteDatabase) { val createContactTable =("สร้างตาราง" + TABLE_CONTACTS + "(" + COLUMN_ID + " คีย์หลัก INTEGER" + COLUMN_NAME + " TEXT," + COLUMN"_NO + " INTEGER + ")") db.execSQL(createContactTable) } แทนที่ fun onUpgrade ( db:SQLiteDatabase, oldVersion:Int, newVersion:Int ) { db.execSQL("DROP TABLE IF EXISTS $TABLE_CONTACTS") on Create(db) } fun listContacts ( ):ArrayList{ val sql ="select * from $TABLE_CONTACTS" val db =this.readableDatabase val storeContacts =ArrayList () val cursor =db.rawQuery(sql, null) if (cur) sor.moveToFirst()) { do { val id =cursor.getString(0).toInt() val name =cursor.getString(1) val phno =cursor.getString(2) storeContacts.add (ผู้ติดต่อ (id, ชื่อ, phno)) } while (cursor.moveToNext()) } cursor.close() return storeContacts } fun addContacts (ผู้ติดต่อ:Contacts) { ค่า val =ContentValues () values.put (COLUMN_NAME, contacts.name) values.put (COLUMN_NO) , contacts.phno) val db =this.writableDatabase db.insert (TABLE_CONTACTS, null, ค่า) } อัปเดตผู้ติดต่อสนุก (ผู้ติดต่อ:ผู้ติดต่อ) { ค่า val =ContentValues () values.put (COLUMN_NAME, contacts.name) values.put ( COLUMN_NO, contacts.phno) val db =this.writableDatabase db.update ( TABLE_CONTACTS, ค่า, "$COLUMN_ID =?", arrayOf(contacts.id.toString()) ) } fun deleteContact (id:Int) { val db =this.writableDatabase db.delete (TABLE_CO .) NTACTS, "$COLUMN_ID =?", arrayOf(id.toString()) ) } วัตถุที่แสดงร่วม { const ส่วนตัว val DATABASE_VERSION =5 ส่วนตัว const val DATABASE_NAME ="Contacts" ส่วนตัว const val TABLE_CONTACTS ="Contacts" ส่วนตัว const val COLUMN_ID =" _id" ค่า const ส่วนตัว COLUMN_NAME ="contactName" ค่า const ส่วนตัว COLUMN_NO ="phoneNumber" }}
ขั้นตอนที่ 5 − สร้างไฟล์ทรัพยากรเลย์เอาต์ (add_contacts.xml &contact_list_layout.xml) และเพิ่มรหัสต่อไปนี้
add_contacts.xml −
contact_list_layout.xml −
ขั้นตอนที่ 6 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml
<หมวดหมู่ android:name=" android.intent.category.LAUNCHER" />
มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์ของคุณแล้วคลิก Run ไอคอนจากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ