数据库案例2和3
创建一个layout
创建ListView视图
部分代码如下
创建数据库 dao包
package dao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.Settings;
/**
-
Created by Administrator on 2017/4/17.
*/
public class MyHelper extends SQLiteOpenHelper {
public MyHelper(Context context) {
super(context, “db”, null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
System.out.println(“onCreate”);
db.execSQL(“create table account(_id integer primary key autoincrement,name varchar(20),balance integer)”);}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println(“onUpgrade”);}
}
之后MainAcyivity部分代码
package com.example.buju
import Javabean.Account
import Javabean.AccountDao
import android.app.Activity
import android.app.AlertDialog
import android.content.DialogInterface
import android.os.Bundle
import android.support.v4.app.INotificationSideChannel;
import android.support.v4.app.RemoteActionCompatParcelizer;
import android.view.View
import android.view.ViewGroup
import android.widget.*
import android.widget.AdapterView.OnItemClickListener
import com.example.buju.MainActivity;
class MainActivity : Activity() {
private var list: MutableList? = null
private var dao: AccountDao? = null
private var nameET: EditText? = null
private var balanceET: EditText? = null
private var adapter: MyAdapter? = null
private var accountLV: ListView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initView()
dao = AccountDao(this)
list = dao!!.queryAll()
adapter = MyAdapter()
accountLV!!.adapter = adapter
}
private fun initView() {
accountLV = findViewById<View>(R.id.lv01) as ListView
nameET = findViewById<View>(R.id.et01) as EditText
balanceET = findViewById<View>(R.id.et02) as EditText
accountLV!!.onItemClickListener = MyOnItemClickListener()
}
fun add(view: View?) {
val name = nameET!!.text.toString().trim { it <= ' ' }
val balance = balanceET!!.text.toString().trim { it <= ' ' }
val a = Account(name, if (balance == "") 0 else balance.toInt())
dao!!.insert(a)
list!!.add(a)
adapter!!.notifyDataSetChanged()
accountLV!!.setSelection(accountLV!!.count - 1)
nameET!!.setText("")
balanceET!!.setText("")
}
private inner class MyAdapter : BaseAdapter() {
override fun getCount(): Int {
return list!!.size
}
override fun getItem(position: Int): Any {
return list!![position]
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getView(position: Int, convertView: View, parent: ViewGroup): View {
val item = convertView
?: View.inflate(
applicationContext, R.layout.listview_itemd, null
)
val tvid = item.findViewById<View>(R.id.tvid) as TextView
val tvname = item.findViewById<View>(R.id.tvname) as TextView
val tvbalance = item.findViewById<View>(R.id.tvprice) as TextView
val a: Account = list!![position]
tvid.setText(a.getId().toString() + "")
tvname.setText(a.getName())
tvbalance.setText(a.getBalance().toString() + "")
val ivup = item.findViewById<View>(R.id.ivup) as ImageView
val ivdown = item.findViewById<View>(R.id.ivdown) as ImageView
val ivdelete = item.findViewById<View>(R.id.ivdelete) as ImageView
ivup.setOnClickListener {
a.setBalance(a.getBalance() + 1)
notifyDataSetChanged()
dao!!.update(a)
}
ivdown.setOnClickListener {
a.setBalance(a.getBalance() - 1)
notifyDataSetChanged()
dao!!.update(a)
}
ivdelete.setOnClickListener {
val listener =
DialogInterface.OnClickListener { dialogInterface, which ->
list!!.remove(a)
dao!!.delete(a.getId())
notifyDataSetChanged()
}
val builder: AlertDialog.Builder = AlertDialog.Builder(this@MainActivity)
builder.setTitle("确定要删除吗?")
builder.setPositiveButton("确定", listener)
builder.setNegativeButton("取消", null)
builder.show()
}
return item
}
}
private inner class MyOnItemClickListener : OnItemClickListener {
override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val a: Account = parent.getItemAtPosition(position) as Account
Toast.makeText(applicationContext, a.toString(), Toast.LENGTH_SHORT).show()
}
}
}
创建ACCount构造方法
package Javabean;
public class Account {
private Long id;
private String name;
private int balance;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
public Account(Long id, String name, int balance) {
super();
this.id = id;
this.name = name;
this.balance = balance;
}
public Account( String name, int balance) {
super();
this.name = name;
this.balance = balance;
}
public Account() {
super();
}
public String toString(){
return "[序号:"+id+",商品名称:"+name+",余额:"+balance+"]";
}
}
创建Accountdao包的连接
package Javabean;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.buju.MainActivity;
import java.*;
import java.util.ArrayList;
import java.util.List;
import dao.MyHelper;
/**
- Created by Administrator on 2017/4/17.
*/
public class AccountDao {
private MyHelper myHelper;
public AccountDao(Context context){
myHelper=new MyHelper(context);
}
public void insert(Account account){
SQLiteDatabase db=myHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put(“name”,account.getName());
contentValues.put(“balance”,account.getBalance());
long id=db.insert(“account”,null,contentValues);
account.setId(id);
db.close();
}
public int delete(long id){
SQLiteDatabase db=myHelper.getWritableDatabase();
int count=db.delete(“account”,"_id=?",new String[] {id+""});
db.close();
return count;
}
public int update(Account account){
SQLiteDatabase db=myHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put(“name”,account.getName());
contentValues.put(“balance”,account.getBalance());
int count=db.update(“account”,contentValues,"_id=?",new String[] {account.getId()+""});
db.close();
return count;
}
public List queryAll(){
SQLiteDatabase db=myHelper.getReadableDatabase();
Cursor cursor=db.query(“account”,null,null,null,null,null,“balance DESC”);
List list=new ArrayList();
while(cursor.moveToNext()){
long id=cursor.getLong(cursor.getColumnIndex("_id"));
String name=cursor.getString(1);
int balance=cursor.getInt(2);
list.add(new Account(id,name,balance));
}
cursor.close();
db.close();
return list;
}
}
以上是一个完整程序