赞
踩
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView android:id="@+id/listview" android:layout_width="1200px" android:layout_height="600px" android:layout_gravity="center"/> <LinearLayout android:layout_width="1600px" android:layout_height="match_parent" android:layout_gravity="center"> <Button android:id="@+id/addData" android:layout_margin="60px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="添加数据"/> <Button android:id="@+id/selectData" android:layout_margin="60px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="查询数据"/> <Button android:id="@+id/deleteData" android:layout_margin="60px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="删除数据"/> </LinearLayout> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="tom" android:gravity="center" android:background="#ff0000" android:textColor="#ffffff"/> </LinearLayout>
package com.example.yyr2_9
/**
*@创建者: yuyiran
*@创建日期: 2020-6-5 15:33
*@描述:
*/
class Data(val name:String) {
}
package com.example.yyr2_9 import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.TextView /** *@创建者: yuyiran *@创建日期: 2020-6-5 15:31 *@描述: */ class MyAdapter(val content : Context,val datas:ArrayList<Data>):BaseAdapter() { inner class MyHolder(){ lateinit var name:TextView } override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { var view:View ?= null var myHolder : MyHolder ?= null if(convertView == null){ myHolder = MyHolder() view = LayoutInflater.from(content).inflate(R.layout.listview,null) myHolder.name = view.findViewById(R.id.name) view.tag = myHolder }else{ view = convertView myHolder = view.tag as MyHolder } myHolder.name.text = datas.get(position).name return view!! } override fun getItem(position: Int): Any { //获取指定位置(position)上的item对象,通常不需要修改 return datas.get(position) } override fun getItemId(position: Int): Long { // 获取指定位置(position)上的item的id,通常不需要修改 return position.toLong() } override fun getCount(): Int { //返回一个整数,就是要在listview中现实的数据的条数 return datas.size } }
注意:SQLiteOpenHelper是一个抽象类,我们需要自己创建一个类来继承他
SQLiteOpenHelper需要重写两个方法onCreate和onUpgrade
package com.example.yyr2_9 import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper /** *@创建者: yuyiran *@创建日期: 2020-6-5 15:46 *@描述: */ class MyDatabaseHelper(val context: Context,name:String,version:Int) : SQLiteOpenHelper(context,name,null,version) { private val CraeteDatbase = "create table t1(id integer primary key,name text) " override fun onCreate(db: SQLiteDatabase?) { db?.execSQL(CraeteDatbase) } override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } }
package com.example.yyr2_9 import android.content.ContentValues import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { var list:ArrayList<Data> ?= ArrayList() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val dbHelper = MyDatabaseHelper(this,"name.db",1) addData.setOnClickListener { list?.clear() val db = dbHelper.writableDatabase val values = ContentValues().apply { put("name",RandomName()) } db.insert("t1",null,values) val cursor = db.query("t1",null,null,null,null,null,null) if(cursor.moveToFirst()){ do { val name = cursor.getString(cursor.getColumnIndex("name")) list?.add(Data(name)) }while (cursor.moveToNext()) } listview.adapter = MyAdapter(this,list!!) cursor.close() } deleteData.setOnClickListener { list?.clear() val db = dbHelper.writableDatabase db.delete("t1","id>?", arrayOf("2")) val cursor = db.query("t1",null,null,null,null,null,null) if(cursor.moveToFirst()){ do { val name = cursor.getString(cursor.getColumnIndex("name")) list?.add(Data(name)) }while (cursor.moveToNext()) } listview.adapter = MyAdapter(this,list!!) cursor.close() } selectData.setOnClickListener { list?.clear() val db = dbHelper.writableDatabase val cursor = db.query("t1",null,null,null,null,null,null) if(cursor.moveToFirst()){ do { val name = cursor.getString(cursor.getColumnIndex("name")) list?.add(Data(name)) }while (cursor.moveToNext()) } listview.adapter = MyAdapter(this,list!!) cursor.close() } } private fun RandomName():String{ var number = (1..9).random().toString() return "姓名${number}" } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。