SQLite数据库---ListView控件之商品展⽰案例
运⽤ListView控件在界⾯上操作数据库。开发⼀个购物车,需要将购物车中的商品以陈列的形式展⽰,并且还需要对购物车的商品进⾏增删改查操作。要实现这些功能就需要使⽤ListView和SQLite数据库。接下来通过⼀个“商品展⽰”案例实现在界⾯上的操作数据库。具体步骤如下:
1.创建程序
⾸先创建程序,修改包名,设计⽤户交互界⾯。此程序对应的布局⽂件(l)如下所⽰:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android"
xmlns:app="schemas.android/apk/res-auto"
xmlns:tools="schemas.android/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:orientation="vertical"
tools:context=".MainActivity" >listview控件在哪里
<LinearLayout
android:id="@+id/addLL"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/nameET"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="商品名称"
android:inputType="textPersonName" />
<EditText
android:id="@+id/balanceET"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="⾦额"
android:inputType="number" />
<ImageView
android:id="@+id/addIV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="add"
android:src="@android:drawable/ic_input_add" />
</LinearLayout>
<ListView
android:id="@+id/accountLV"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/addLL" >
</ListView>
</LinearLayout>
android:src="@android:drawable/ic_input_add" 显⽰图⽚的原图⼤⼩
效果图展⽰:
2.创建ListView
Item布局在res/layout下创建⼀个l⽂件,创建三个TextView和三个ImageView,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android"    xmlns:app="schemas.android/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:id="@+id/idTV"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="13"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/nameTV"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:singleLine="true"
android:text="PQ"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/balanceTV"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:singleLine="true"
android:text="12345"
android:textColor="#000000"
android:textSize="20sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/upIV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:src="@android:drawable/arrow_up_float" />
<ImageView
android:id="@+id/downIV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/arrow_down_float" />
</LinearLayout>
<ImageView
android:id="@+id/deleteIV"
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@android:drawable/ic_menu_delete" />
</LinearLayout>
添加的三个TextView分别⽤于显⽰数据库中的某条数据的id,商品名称,⾦额。添加的三个ImageView⽤于增加⾦额,减少⾦额,删除数据。
效果图展⽰:
3.创建数据库
创建数据库属于数据操作,因此需要在cn.edu.bzu.productshow包下创建⼀个名为Dao的包。并在该包下定义⼀个MyHelper类继承
⾃SQLiteOpenHelper,创建数据库的代码如下:
package cn.edu.bzu.productshow.Dao;
t.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import cn.edu.bzu.productshow.MainActivity;
public class MyHelper extends SQLiteOpenHelper{
//由于⽗类没有⽆参构造参数,所以⼦类必须指定调⽤弗雷德哪个有参的构造函数
public MyHelper(Context context) {
super(context, "product.db", null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("MyHelper","OnCreate");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d("MyHelper","OnUpgrade");
}
}
4.创建Account类
在操作数据库时将数据存放⾄⼀个JavaBean对象操作起来⽐较⽅便。因此需要在cn.edu.bzu.productshow包下创建⼀
个Bean包⽤于存放JavaBean类,然后在cn.edu.bzu.productshow.Bean包下定义⼀个类Account。具体代码如下:
package cn.edu.bzu.productshow.Bean;
public class Account {
private Long id;
private String name;
private Integer balance;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getBalance() {
return balance;
}
public void setBalance(Integer balance) {
if(balance>=0)
this.balance = balance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Account(long id, String name, Integer balance) {
super();
this.balance = balance;
this.name = name;
this.id = id;
}
public Account(String name, Integer balance) {
super();
this.name = name;
this.balance = balance;
}
public Account()
{
super();
}
public String toString()
{
return "[序号:"+id+",商品名称"+name+",余额:"+balance+"]";
}
}
5.创建数据操作逻辑类
在cn.edu.bzu.productshow.Dao包下创建⼀个AccountDao类⽤于操作数据。具体代码如下:package cn.edu.bzu.productshow.Dao;
t.ContentValues;
t.Context;
import android.database.Cursor;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。