3

我从 Wei-Meng Lee 的“开始 Android 应用程序开发”中借用了以下代码:

import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBAdapter {

    private static final String TAG = "DBAdapter";
    private static final String DATABASE_NAME = "MyDB";
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_CREATE =
            "create table contacts (_id integer primary key autoincrement, "
                    + "name text not null, email text not null);";
    private final Context context;
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
    public DBAdapter (Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
    
    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
        
        @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)
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS contacts");
            onCreate(db);
        }
    }
}

还有更多,但我试图简化。

我收到以下错误:

说明 资源路径 位置 类型

令牌 ")" 上的语法错误,{ 在此令牌 DBAdapter.java 之后预期

在......的最后onUpgrade

语法错误,插入“}”完成ClassBody DBAdapter.java

语法错误,插入“}”完成ClassBody DBAdapter.java

在......的最后onCreate

我是 Android 应用程序的新手,所以有人可以帮我理解这些消息吗?

这是 Eclipse 显示的内容:

在此处输入图像描述

4

3 回答 3

2

这些是来自编译器的消息,告诉您您的大括号{}和/或括号()在文件中不平衡。如果您复制/粘贴了此代码,请确保您没有错过最后的大括号或类似的东西。您发布的代码看起来很平衡,因此它必须在文件中更靠后。

高温高压

于 2012-06-25T15:11:09.443 回答
0

尝试在构造函数之前添加 public

DatabaseHelper(Context context)

应该

public DatabaseHelper(Context context)
于 2012-06-25T15:11:30.433 回答
0

是的,如上所示,需要一个支架。特别是如果您只是复制/粘贴代码。右键单击错误,单击“转到”,然后添加/删除(取决于您的问题)所需的令牌。

于 2014-03-03T23:44:38.803 回答