我从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的显示内容:
答案 0 :(得分:2)
这些是来自编译器的消息,告诉您文件中的大括号{}
和/或括号()
不平衡。如果你复制/粘贴了这段代码,请确保你最后没有错过任何一个大括号或类似的东西。您发布的代码看起来很平衡,因此必须在文件中进一步缩小。
HTH
答案 1 :(得分:0)
尝试在构造函数
之前添加publicDatabaseHelper(Context context)
应该是
public DatabaseHelper(Context context)
答案 2 :(得分:0)
是的,如上所示,需要支撑。特别是如果您只是复制/粘贴代码。右键单击错误,单击“转到”,然后添加/删除(取决于您的问题)所需的令牌。