如何显示在ListView android的数据库 [英] how to display the database in a listview android

查看:133
本文介绍了如何显示在ListView android的数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题是有名的,但大家总是说去看看这个记事本教程

这会有所帮助,但它并不能帮助那么多,当你被卡住了。

所以我有,我已经在Android上创建这个数据库,我想在一个列表视图中显示它,我做了教程,但我还是不明白,为什么我不能让它在我的项目上工作,因此,如果是谁的人可以帮忙,请出示一下吧!


这是我的code

 公共类MyFridge扩展ListActivity {私人DBAdapter分贝;
公共无效的onCreate(捆绑savedInstanceState)
{
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.notepad_list);
    DB =新DBAdapter(本);
    db.open();
    fillData();
@覆盖
公共布尔onCreateOptionsMenu(菜单菜单)
{
    super.onCreateOptionsMenu(菜单);
    CreateMenu(菜单);
    返回true;
}@覆盖
公共布尔onOptionsItemSelected(菜单项项)
{    开关(item.getItemId())
    {
    情况下0:        意图F =新意图(MyFridge.this,Addform.class);
        startActivity(F);            返回true;    情况1:        意图R =新意图(MyFridge.this,MyRecipes.class);
        startActivity(R);
        返回true;    默认:
        返回super.onOptionsItemSelected(项目);        }
    }私人无效CreateMenu(菜单菜单)
{
    菜单项mnu1 = menu.add(0,0,0,添加成分);
    {
        mnu1.setAlphabeticShortcut('A'); //更改与此项目相关的字母快捷键。
        mnu1.setIcon(R.drawable.ic_launcher);    }    菜单项mnu2 = menu.add(0,1,1,删除成分);
    {
        mnu2.setAlphabeticShortcut('B'); //更改与此项目相关的字母快捷键。
        mnu2.setIcon(R.drawable.ic_launcher);
    }
    }    私人无效fillData(){
        //获取所有的音符从数据库中,并创建项目列表
        光标C = db.getAllCars();
        startManagingCursor(C);        的String [] =由新的String [] {} DBAdapter.KEY_TYPE;
        INT []为= INT新[] {} R.id.text1;        //现在创建一个阵列适配器,并设置它使用我们一行中显示
        SimpleCursorAdapter指出=
            新SimpleCursorAdapter(这一点,R.layout.notes_row,C,从,到);
        setListAdapter(注);
    }


这是我的数据库:

 公共类DBAdapter {
    公共静态最后弦乐KEY_ROWID =_id;
    公共静态最后弦乐为key_type =类型;
    公共静态最后弦乐KEY_WEIGHT =减肥;
    公共静态最后弦乐KEY_EXP =到期日;    私有静态最后弦乐TAG =DBAdapter;    私有静态最后弦乐DATABASE_NAME =MYDB;
    私有静态最后弦乐DATABASE_TABLE =冰箱;
    私有静态最终诠释DATABASE_VERSION = 2;    私有静态最后弦乐DATABASE_CREATE =
        CREATE TABLE冰箱(_id整数主键自动增量
        +文本类型不为null,整数重量不为空,EXP整数NOT NULL);;
    // CHECK(P_ID大于0)    私人最终上下文的背景下;    私人DatabaseHelper DBHelper;
    私人SQLiteDatabase分贝;    公共DBAdapter(上下文CTX)
    {
        this.context = CTX;
        //它让新创建的对象理解什么已经持续。
        //通常你调用它来获取关于你的程序的其他部分信息
        DBHelper =新DatabaseHelper(背景);
    }    私有静态类DatabaseHelper扩展SQLiteOpenHelper
    {
        DatabaseHelper(上下文的背景下)
        {
            超(背景下,DATABASE_NAME,空,DATABASE_VERSION); //调用父类的上下文
        }        @覆盖
        公共无效的onCreate(SQLiteDatabase DB)
        {
            尝试{
                db.execSQL(DATABASE_CREATE);
            }赶上(的SQLException E){
                e.printStackTrace();
            }
        }        @覆盖
        公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释NEWVERSION)//如果操作系统或应用程序版本改变使用这种方法
        {
            Log.w(TAG,从版本升级数据库+ oldVersion +到
                    + NEWVERSION +,这将摧毁所有旧数据);
            db.execSQL(DROP TABLE IF EXISTS汽车);
            的onCreate(DB);
        }
    }    // ---打开数据库---
    公共DBAdapter的open()抛出的SQLException
    {
        DB = DBHelper.getWritableDatabase();
        返回此;
    }    // ---关闭数据库---
    公共无效的close()
    {
        DBHelper.close();
    }    // ---插入一个接触到数据库---
    众长insertCar(字符串类型,INT重量,诠释EXP)
    {
        ContentValues​​ initialValues​​ =新ContentValues​​();
        initialValues​​.put(key_type的,类型);
        initialValues​​.put(KEY_WEIGHT,重量);
        initialValues​​.put(KEY_EXP,EXP);        返回db.insert(DATABASE_TABLE,空,initialValues​​);
    }    // ---删除特定联系人---
    公共布尔deleteCar(长ROWID)
    {
        返回db.delete(DATABASE_TABLE,KEY_ROWID +=+ ROWID,NULL)> 0;
    }    // ---检索所有联系人---
    公共光标getAllCars()
    {
        返回db.query(DATABASE_TABLE,新的String [] {KEY_ROWID,为key_type,
                KEY_WEIGHT,KEY_EXP},NULL,NULL,NULL,NULL,NULL);
    }    / *
     *检索特定的汽车
     *
     * /
    公共光标getCar(字符串搜索字符串)//抛出的SQLException
    {
        光标mCursor =
                db.query(真,DATABASE_TABLE,新的String [] {KEY_ROWID,
                为key_type,KEY_WEIGHT,KEY_EXP},为key_type +=+'+搜索字符串+'+或+ KEY_ROWID +=+'+搜索字符串+'+或+ KEY_EXP += +'+搜索字符串+'+或+ KEY_WEIGHT +=+'+搜索字符串+',空,
                NULL,NULL,NULL,NULL);        返回mCursor;
    }
    // ---更新联系人---
    公共布尔updateCar(长ROWID,字符串类型,INT重量,诠释EXP)
    {
        ContentValues​​ ARGS =新ContentValues​​();
        args.put(key_type的,类型);
        args.put(KEY_WEIGHT,重量);
        args.put(KEY_EXP,EXP);        返回db.update(DATABASE_TABLE,ARGS,KEY_ROWID +=+ ROWID,NULL)> 0;
    }
}


logcat的信息。

  04-09 18:14:47.128:D / TextLayoutCache(23297):使用调试级别:0  - 调试启用:0
04-09 18:14:47.173:D /剪贴板(23297):隐藏剪贴板在对话框输入出发:由别人完成了...!
04-09 18:14:49.113:I / SqliteDatabaseCpp(23297):sqlite的返回:错误code = 1,味精=没有这样的表:冰箱,DB = XXX
04-09 18:14:49.113:D / AndroidRuntime(23297):关闭VM
04-09 18:14:49.118:W / dalvikvm(23297):主题ID = 1:螺纹未捕获的异常(组= 0x40c281f8)退出
04-09 18:14:49.123:E / AndroidRuntime(23297):致命异常:主要
04-09 18:14:49.123:E / AndroidRuntime(23297):了java.lang.RuntimeException:无法启动活动ComponentInfo {wijayaratnam.sutharsun.mobilefridge / wijayaratnam.sutharsun.mobilefridge.MyFridge}:android.database.sqlite.SQLiteException :没有这样的表:冰箱:,编译时:选择_id,种类,重量,到期日从冰箱
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.ActivityThread.access $ 600(ActivityThread.java:127)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1159)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.os.Handler.dispatchMessage(Handler.java:99)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.os.Looper.loop(Looper.java:137)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.ActivityThread.main(ActivityThread.java:4507)
04-09 18:14:49.123:E / AndroidRuntime(23297):在java.lang.reflect.Method.invokeNative(本机方法)
04-09 18:14:49.123:E / AndroidRuntime(23297):在java.lang.reflect.Method.invoke(Method.java:511)
04-09 18:14:49.123:E / AndroidRuntime(23297):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:790)
04-09 18:14:49.123:E / AndroidRuntime(23297):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
04-09 18:14:49.123:E / AndroidRuntime(23297):在dalvik.system.NativeStart.main(本机方法)
04-09 18:14:49.123:E / AndroidRuntime(23297):android.database.sqlite.SQLiteException:没有这样的表:由造成冰箱:,编译时:选择_id,种类,重量,到期日从冰箱
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteCompiledSql.native_compile(本机方法)
。04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteCompiledSql<&初始化GT;(SQLiteCompiledSql.java:68)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
。04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteProgram<&初始化GT;(SQLiteProgram.java:127)
。04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteProgram<&初始化GT;(SQLiteProgram.java:94)
。04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteQuery<&初始化GT;(SQLiteQuery.java:53)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1690)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1575)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1531)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1611)
04-09 18:14:49.123:E / AndroidRuntime(23297):在wijayaratnam.sutharsun.mobilefridge.DBAdapter.getAllCars(DBAdapter.java:101)
04-09 18:14:49.123:E / AndroidRuntime(23297):在wijayaratnam.sutharsun.mobilefridge.MyFridge.fillData(MyFridge.java:146)
04-09 18:14:49.123:E / AndroidRuntime(23297):在wijayaratnam.sutharsun.mobilefridge.MyFridge.onCreate(MyFridge.java:29)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.Activity.performCreate(Activity.java:4465)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
04-09 18:14:49.123:E / AndroidRuntime(23297):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
04-09 18:14:49.123:E / AndroidRuntime(23297):... 11个


解决方案

如果你的错误是一个SQL未找到列,然后重新写你的创建表语句这样:

 私有静态最后弦乐DATABASE_CREATE =
    CREATE TABLE+ DATABASE_TABLE +(
    + KEY_ROWID +整数主键自动增量
    +为key_type +文本不为空,
    + KEY_WEIGHT +整数NOT NULL,
    + KEY_EXP +整数空);;

您会注意到你定义 KEY_EXP =到期日但在你创建你手动调用列 EXP ;即列未找到。尽量使用那些你创建变量尽可能限制这些类型的错别字。祝你好运!

This question is famous but everyone always says go to see this Notepad Tutorial.

Which helps, but it doesn't help that much when you are stuck.

So I have this database that I've created on Android and I'd like to display it in a listview, I did the tutorial but I still don't understand why I cant make it work on my project, so if there is someone who can help, please show yourself!


here is my code

public class MyFridge extends ListActivity {

private DBAdapter db;
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.notepad_list);
    db = new DBAdapter(this);
    db.open();
    fillData();   


}@Override
public boolean onCreateOptionsMenu (Menu menu)
{


    super.onCreateOptionsMenu(menu);
    CreateMenu(menu);
    return true;
}

@Override
public boolean onOptionsItemSelected (MenuItem item)
{

    switch(item.getItemId())
    {
    case 0:

        Intent f = new Intent(MyFridge.this, Addform.class);
        startActivity(f);

            return true;

    case 1:

        Intent r = new Intent(MyFridge.this, MyRecipes.class);
        startActivity(r);


        return true;

    default:
        return super.onOptionsItemSelected(item);

        }
    }

private void CreateMenu(Menu menu) 
{
    MenuItem mnu1 = menu.add(0, 0, 0, "Add ingredient");
    {
        mnu1.setAlphabeticShortcut('a');//Change the alphabetic shortcut associated with this item.
        mnu1.setIcon(R.drawable.ic_launcher);

    }

    MenuItem mnu2 = menu.add(0, 1, 1, "Delete ingredient");
    {
        mnu2.setAlphabeticShortcut('b');//Change the alphabetic shortcut associated with this item.
        mnu2.setIcon(R.drawable.ic_launcher);
    }
    }

    private void fillData() {
        // Get all of the notes from the database and create the item list
        Cursor c = db.getAllCars();
        startManagingCursor(c);

        String[] from = new String[] { DBAdapter.KEY_TYPE };
        int[] to = new int[] { R.id.text1 };

        // Now create an array adapter and set it to display using our row
        SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
        setListAdapter(notes);
    }


And here is my database:

    public class DBAdapter {
    public static final String KEY_ROWID = "_id";
    public static final String KEY_TYPE = "type";
    public static final String KEY_WEIGHT = "weight";
    public static final String KEY_EXP = "expiration day";

    private static final String TAG = "DBAdapter";

    private static final String DATABASE_NAME = "MyDB";
    private static final String DATABASE_TABLE = "Fridge";
    private static final int DATABASE_VERSION = 2;

    private static final String DATABASE_CREATE =
        "create table Fridge (_id integer primary key autoincrement, "
        + "type text not null, weight integer not null, exp integer not null);";
    //CHECK (P_Id>0)

    private final Context context;    

    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx) 
    {
        this.context = ctx;  
        //It lets newly created objects understand what has been going on.
        //Typically you call it to get information regarding another part of your program
        DBHelper = new DatabaseHelper(context);
    }

    private static class DatabaseHelper extends SQLiteOpenHelper 
    {
        DatabaseHelper(Context context) 
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);//calls the context in the parent class
        }

        @Override
        public void onCreate(SQLiteDatabase db) 
        {
            try {
                db.execSQL(DATABASE_CREATE);    
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) // this method is used if the OS or the version App is changed
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS cars");
            onCreate(db);
        }
    }    

    //---opens the database---
    public DBAdapter open() throws SQLException 
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---    
    public void close() 
    {
        DBHelper.close();
    }

    //---insert a contact into the database---
    public long insertCar(String type, int weight, int exp) 
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_TYPE, type);
        initialValues.put(KEY_WEIGHT, weight);
        initialValues.put(KEY_EXP, exp);

        return db.insert(DATABASE_TABLE, null, initialValues);
    }

    //---deletes a particular contact---
    public boolean deleteCar(long rowId) 
    {
        return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
    }

    //---retrieves all the contacts---
    public Cursor getAllCars() 
    {
        return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TYPE,
                KEY_WEIGHT, KEY_EXP}, null, null, null, null, null);
    }

    /*
     * retrieves a particular car
     * 
     */
    public Cursor getCar(String searchString) //throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
                KEY_TYPE, KEY_WEIGHT,KEY_EXP},KEY_TYPE +"="+"'"+searchString+"'" +" OR "+ KEY_ROWID  + "=" + "'"+searchString +"'"+" OR "+ KEY_EXP + "=" + "'"+searchString +"'"+" OR " + KEY_WEIGHT + "=" + "'" + searchString +"'", null,
                null, null, null, null);

        return mCursor;
    }


    //---updates a contact---
    public boolean updateCar(long rowId, String type, int weight, int exp) 
    {
        ContentValues args = new ContentValues();
        args.put(KEY_TYPE, type);
        args.put(KEY_WEIGHT, weight);
        args.put(KEY_EXP, exp);

        return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
    }
}


Logcat information.

04-09 18:14:47.128: D/TextLayoutCache(23297): Using debug level: 0 - Debug Enabled: 0
04-09 18:14:47.173: D/CLIPBOARD(23297): Hide Clipboard dialog at Starting input: finished by someone else... !
04-09 18:14:49.113: I/SqliteDatabaseCpp(23297): sqlite returned: error code = 1, msg = no such table: Fridge, db=xxx
04-09 18:14:49.113: D/AndroidRuntime(23297): Shutting down VM
04-09 18:14:49.118: W/dalvikvm(23297): threadid=1: thread exiting with uncaught exception (group=0x40c281f8)
04-09 18:14:49.123: E/AndroidRuntime(23297): FATAL EXCEPTION: main
04-09 18:14:49.123: E/AndroidRuntime(23297): java.lang.RuntimeException: Unable to start activity ComponentInfo{wijayaratnam.sutharsun.mobilefridge/wijayaratnam.sutharsun.mobilefridge.MyFridge}: android.database.sqlite.SQLiteException: no such table: Fridge: , while compiling: SELECT _id, type, weight, expiration day FROM Fridge
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.os.Looper.loop(Looper.java:137)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.ActivityThread.main(ActivityThread.java:4507)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at java.lang.reflect.Method.invoke(Method.java:511)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at dalvik.system.NativeStart.main(Native Method)
04-09 18:14:49.123: E/AndroidRuntime(23297): Caused by: android.database.sqlite.SQLiteException: no such table: Fridge: , while compiling: SELECT _id, type, weight, expiration day FROM Fridge
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:127)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:94)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:53)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1690)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1575)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1531)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1611)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at wijayaratnam.sutharsun.mobilefridge.DBAdapter.getAllCars(DBAdapter.java:101)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at wijayaratnam.sutharsun.mobilefridge.MyFridge.fillData(MyFridge.java:146)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at wijayaratnam.sutharsun.mobilefridge.MyFridge.onCreate(MyFridge.java:29)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.Activity.performCreate(Activity.java:4465)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
04-09 18:14:49.123: E/AndroidRuntime(23297):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
04-09 18:14:49.123: E/AndroidRuntime(23297):    ... 11 more

解决方案

If your error is a sql "column not found", then re-write your create table statement to this:

private static final String DATABASE_CREATE =
    "create table " + DATABASE_TABLE + " ("
    + KEY_ROWID + " integer primary key autoincrement, "
    + KEY_TYPE + " text not null, "
    + KEY_WEIGHT + " integer not null, "
    + KEY_EXP + " integer not null);";

You'll notice that you define KEY_EXP = "expiration day" but in your create statement you manually call the column exp; ie column not found. Try to use those variables you create as much as possible to limit these kinds of typos. Good luck!

这篇关于如何显示在ListView android的数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆