本次的安卓应用介绍的是listview和安卓SQLite数据库的应用,主要功能是:
1.创建数据库,并可以向数据库中添加菜单。菜单的条目有:编号、图片、名称、价格、简介。
2.读取数据中的菜单,并在自己设计的ListView里面显示对应条目。
我采用的是SimpAdapter.具体代码如下:
布局文件:
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="5dp"
tools:context="${relativePackage}.${activityClass}" >
<LinearLayout
android:id="@+id/addll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="查看菜单"
android:layout_weight="1"
android:onClick="chakan"
android:textColor="#000000"
android:textSize="10sp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="清空菜单"
android:layout_weight="1"
android:onClick="shanchu"
android:textColor="#000000"
android:textSize="10sp"/>
</LinearLayout>
<ListView
android:id="@+id/lvi"
android:layout_below="@id/addll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
item.xml
<?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="wrap_content"
android:orientation="horizontal" >
<TextView android:id="@+id/id"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1"
android:singleLine="true"
android:textColor="#000000"
android:textSize="20sp"/>
<ImageView android:id="@+id/img"
android:layout_width="50dp"
android:layout_height="50dp"
android:singleLine="true"
android:src="@drawable/p1"/>
<TextView android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:text="2"
android:textColor="#000000"
android:textSize="10sp"/>
<TextView android:id="@+id/price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:text="10"
android:textColor="#000000"
android:textSize="10sp"/>
<TextView android:id="@+id/disc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:text="2"
android:textColor="#000000"
android:textSize="5sp"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:text="点菜"
android:textColor="#000000"
android:textSize="8sp"
/>
</LinearLayout>
Java文件:
MainActivity.java
package com.example.menu;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
Menusql helper;//数据库对象
int [] icons={R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4};//图片
List<menu> menuifos=null;
int i=0;//存储对象的容器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper=new Menusql(this);
helper.getWritableDatabase();
read();
}
//创建四条数据库记录
public void add()
{
SQLiteDatabase db=helper.getWritableDatabase();
db.execSQL("insert into menu(img,name,price,disc)"+"values(?,?,?,?)",new String[]{String.valueOf(icons[0]),"肉夹馍","18","正宗西安肉夹馍"});
db.execSQL("insert into menu(img,name,price,disc)"+"values(?,?,?,?)",new String[]{String.valueOf(icons[1]),"可乐鸡翅","18","可口可乐制作很香甜"});
db.execSQL("insert into menu(img,name,price,disc)"+"values(?,?,?,?)",new String[]{String.valueOf(icons[2]),"北京烤鸭","18","来自北京全聚德"});
db.execSQL("insert into menu(img,name,price,disc)"+"values(?,?,?,?)",new String[]{String.valueOf(icons[3]),"红烧龙虾","18","澳洲龙虾值得拥有"});
db.close();
}
//用simpleAdapter 来显示Listview
public void read()
{
SQLiteDatabase db=helper.getReadableDatabase();
menuifos=new ArrayList<menu>();
Cursor cu=db.query("menu",null,null,null,null,null,null);
try{
while(cu.moveToNext())
{
menu m=new menu();
m.setid(cu.getString(0));
m.setimg(cu.getString(1));
m.setname(cu.getString(2));
m.setprice(cu.getString(3));
m.setdisc(cu.getString(4));
menuifos.add(m);
}}catch(Exception e){Log.e("error","error");}
cu.close();
List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();
for(menu p : menuifos){
Map<String, Object> map = new HashMap<String, Object>();
System.out.println(p.getid()+p.getname()+p.getimg()+p.getprice());
map.put("id",Integer.parseInt(p.getid())-i);
map.put("img", Integer.parseInt(p.getimg()));
map.put("name",p.getname());
map.put("price",p.getprice());
map.put("disc",p.getdisc());
data.add(map);
}
ListView listview=(ListView)findViewById(R.id.lvi);
String [] from={"id","img","name","price","disc"};
int [] to={R.id.id,R.id.img,R.id.name,R.id.price,R.id.disc};
SimpleAdapter adapter=new SimpleAdapter(MainActivity.this,data,R.layout.item,from,to);
listview.setAdapter(adapter);
Log.i("ff","kk");
}
//按钮时间响应
public void chakan(View v)
{
add();
read();
}
public void delete()
{
SQLiteDatabase db=helper.getWritableDatabase();
db.delete("menu", null, null);
db.close();
}
public void shanchu(View v)
{
delete();
read();
i=i+4;
}
}
数据库类:menusql.java
package com.example.menu;
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class Menusql extends SQLiteOpenHelper{
public Menusql(Context context) {
super(context,"men.db",null,5);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table menu(id integer primary key autoincrement,"+
"img varchar(20),"+
"name varchar(20),"+
"price varchar(20),"+
"disc varchar(100))");
Log.i("ddddddddd","ffffffffff");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("alter table person add account varchar(20)");
}
public SQLiteDatabase getSQLiteDatabase() {
// TODO Auto-generated method stub
return null;
}
}
菜单类:menu.java
package com.example.menu;
public class menu {
public String id;
public String img;
public String name;
public String price;
public String disc;
public void setid(String i){
id=i;
}
public void setimg(String i){
img=i;
}
public void setname(String n){
name=n;
}
public void setprice(String p){
price=p;
}
public void setdisc(String d){
disc=d;
}
public String getid(){
return id;
}
public String getimg(){
return img;
}
public String getname(){
return name;
}
public String getprice(){
return price;
}
public String getdisc(){
return disc;
}
}
到此为止本次的应用已经全部完成,看完记得点赞哦!