SQLite:无需部署的轻量级数据库
当有程序需要保存轻量数据,而又烦躁序列化到本地的不便,轻量级数据库—SQLLite是一个很好的选择
它在Androdi studio里面直接就能用
下面我们介绍Kotlin连接SQLite数据库并实现简单的数据存储计算
我们首先拖动editext、button、textview组件,如下图所示
再把下面的代码复制一下
package com.example.administrator.hualicantee //这里改成自己的
import android.content.Context
import android.os.Bundle
import android.os.Message
import android.support.design.widget.BottomNavigationView
import android.support.v7.app.AppCompatActivity
import android.text.TextUtils
import kotlinx.android.synthetic.main.activity_main.*
import android.view.View
import android.widget.TextView
import android.widget.Toast
class MainActivity : AppCompatActivity() ,View.OnClickListener{
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.navigation_home -> {
message.setText(R.string.title_home)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_dashboard -> {
message.setText(R.string.title_dashboard)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_notifications -> {
message.setText(R.string.title_notifications)
return@OnNavigationItemSelectedListener true
}
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button2.setOnClickListener{
var price:Int=editText.text.toString().toInt() //改成自己的
var num:Int=editText2.text.toString().toInt() //改成自己的
var totle:Int=price*num
val db=this.openOrCreateDatabase("Mdb.db",Context.MODE_PRIVATE,null)
db.execSQL("create table if not exists tableC(Price varchar(20),Num varchar(20),Totle varchar(20))")
db.execSQL("insert into tableC values('$price','$num','$totle')")
Toast.makeText(this,"保存成功",Toast.LENGTH_SHORT).show()
editText.setText("")
editText2.setText("") //改成自己的id,其他同理
editText4.setText("") //改成自己的id,其他同理
db.close()
}
button3.setOnClickListener{
val db=this.openOrCreateDatabase("Mdb.db",Context.MODE_PRIVATE,null)
val cursor=db.rawQuery("select * from tableC",null)
cursor.moveToNext()
editText4.setText(cursor.getString(2))
Toast.makeText(this,"总价计算中...",Toast.LENGTH_SHORT).show()
db.execSQL("drop table tableC ")
}//创造一个按钮,并让其处于监听状态
}
override fun onClick(v: View?) {
/*
when(v?.id){
R.id.button ->
showbutton("测试成功")
R.id.button2 ->
showbutton2("保存成功")
R.id.button3 ->
showbutton3("计算中")
}
*/
}
}
暂时有Bug,当输入的数据为空值的时候,程序会自动退出,之后我们会对程序进行修改,其他应该没问题