无法解析方法超级尝试创建SQL Lite数据库(Android Studio初学者问题)

时间:2018-11-15 18:43:08

标签: sqlite android-studio

我是android Studio的初学者,我正在学习带有这样代码的教程

<form name="payForm" method="post" action="https://www.siampay.com/b2c2/eng/payment/payForm.jsp">
  <input type="submit" name="submit" value="Buy" onclick="setAmountValue();">
  <input type="hidden" name="amount" id="amtId" value="Amount">
  <input type="hidden" name="merchantId" value="76117579">
  <input type="hidden" name="orderRef" value="76117579">
  <input type="hidden" name="currCode" value="764">
  <input type="hidden" name="successUrl" value="">
  <input type="hidden" name="failUrl" value="">
  <input type="hidden" name="cancelUrl" value="">
  <input type="hidden" name="remark" value="">
  <input type="hidden" name="lang" value="E">
  <input type="hidden" name="payMethod" value="ALL">
</form>

在在线super上,android studio表示这是错误,而我看到了该教程并没有指出错误。我正在使用Android Studio版本3.2.1

1 个答案:

答案 0 :(得分:0)

  1. 您的花括号不匹配(最后一个缺失)
  2. 字符串应为 S tring(大写S)。
  3. 您不能为字符串分配数字值 DATABASE_VERSION 必须为 int (小写)。
    • int是原始类型(如short,long,char,byte,boolean,float,double),并且均为小写,String是Class,按照惯例,以大写开头(帕斯卡大小写),
    • 如果要遵循此类约定而不是dbhelper,则应使用DBHelper而不是dbhelper。
  4. 您需要为onCreate和onUpgrade添加两个隐藏的方法。

因此,以上内容至少应为:-

public class dbhelper extends SQLiteOpenHelper {


    public static final String DATABASE_NAME = "perpustakaan.db";
    public static final String TABLE_NAME = "user";
    public static final int DATABASE_VERSION = 1;
    public static final String COL_1 = "username";
    public static final String COL_2 = "password";

    public dbhelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {

    }
}
  • 请注意,DATABASE_VERSION已用于数据库版本(否则它是无用的)。

通常,在 onCreate 方法中,定义要在数据库中存储的表。

也许 onCreate 方法可能是:-

@Override
public void onCreate(SQLiteDatabase db) {
    String crt_sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(" +
            COL_1 + " TEXT UNIQUE," +
            COL_2 + " TEXT" +
            ")";
    db.execSQL(crt_sql);
}

因此,当调用 onCreate 方法时,将创建 user 表。

  • onCreate 方法仅在数据库的生存期内被调用一次。
  • 实例化dbhelper类时(例如,通过使用dbhelper mydatabase = new dbhelper(this);但尝试访问数据库时, onCreate 方法不会被调用)< / li>