安卓开发(二)ListView显示菜单,SQLite存储和ListView显示

来源:互联网 发布:接入网络 编辑:程序博客网 时间:2024/06/01 13:39

本次的安卓应用介绍的是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;    }}

这里写图片描述
到此为止本次的应用已经全部完成,看完记得点赞哦!

0 0
原创粉丝点击