2012-06-01 28 views
0

我被困在我的代碼中,一直在Youtube上關注newboston教程。下面是我有的代碼,但由於某種原因,我得到的錯誤,我無法弄清楚,任何提示?Android中的Trading Card管理系統SQLite

這是我RedemptionDB.java類,在這個代碼就行

public RedemptionDB(Context c){ 
Context = c; 
} 

我得到一個錯誤,告訴我設置方法的返回類型爲void,但在代碼巴基沒有這樣的說法。

下一個錯誤我得到的是在線路:

public RedmptionDB open(){ 

它告訴我:科瑞類RedemptionDB,其中創建我想在代碼的開始!

package com.aloadofbs.redemptioncardmanager; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class RedemptionDB { 


private static final String DB_NAME = "RedempDB"; 
private static final int DB_VERSION = 1; 
private static final String TABLE = "cards"; 

public static final String KEY_ID = "_id"; // Special for id 
public static final String KEY_CARDNUMBER = "card_number"; 
public static final String KEY_CARDNAME = "card_name"; 
public static final String KEY_BRIGCOLOR = "brig_color"; 
public static final String KEY_CARDPT = "power_toughness"; 
public static final String KEY_QTY = "qty"; 
public static final String KEY_VALUE = "value"; 
public static final String KEY_C = "C"; 
public static final String KEY_TYPE = "card_type"; 
public static final String KEY_SET = "card_set"; 
public static final String KEY_RARITY = "card_rarity"; 
public static final String KEY_VERSE = "card_verse"; 
public static final String KEY_IDENTIFIER = "card_identifiers"; 
public static final String KEY_ABILITIES = "card_special_ability"; 

private static DbHelper ourHelper; 
private static Context ourContext; 
private static SQLiteDatabase ourDatabase; 

private static class DbHelper extends SQLiteOpenHelper{ 

public DbHelper(Context context) { 
     super(context, DB_NAME, null, DB_VERSION); 
     // TODO Auto-generated constructor stub 
    } 



@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE" + TABLE + " ("+ KEY_ID + "INTEGER PRIMARY KEY ATOINCREMENT, " + KEY_CARDNUMBER + "TEXT NOT NULL, " + KEY_CARDNAME + "TEXT NOT NULL, " + KEY_BRIGCOLOR + "TEXT NOT NULL, " + KEY_CARDPT + "TEXT, " + KEY_QTY + "INTEGER, " + KEY_VALUE + "INTEGER, " + KEY_C + "TEXT, " + KEY_TYPE + "TEXT, " + KEY_SET + "TEXT, " + KEY_RARITY + "TEXT, " + KEY_VERSE + "TEXT NOT NULL, " + KEY_IDENTIFIER + "TEXT NOT NULL, " + KEY_ABILITIES + " TEXT NOT NULL);" 
      ); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE); 
    onCreate(db); 

} 

public RedemptionDB (Context c){ 
Context = c; 
} 

public RedmptionDB open(){ 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 

} 

public void close(){ 
    ourHelper.close(); 
    ourDatabase.close(); 

} 
} 

public long createEntry(String cardname, String cardset, 
     String cardcolor, String cardtype) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_CARDNAME, cardname); 
    cv.put(KEY_BRIGCOLOR, cardcolor); 
    cv.put(KEY_TYPE, cardtype); 
    cv.put(KEY_SET, cardset); 
    return ourDatabase.insert(TABLE, null, cv); 

} 

} 

回答

0

一對夫婦的變化應該可以解決您:

更改此:

public RedemptionDB(Context c){ 
    Context = c; 
} 

對此(你specifiec ourContext,沒有上下文):

public RedemptionDB(Context c){ 
    this.ourContext = c; 
} 

更改此:

public DbHelper(Context context) { 
    super(context, DB_NAME, null, DB_VERSION); 
    // TODO Auto-generated constructor stub 
} 

對此(你真的不希望出現這種情況是公共方法):

DbHelper(Context context) { 
    super(context, DB_NAME, null, DB_VERSION); 
    // TODO Auto-generated constructor stub 
} 
+0

我補充一點,你也是在open()方法拼錯類的名字 - 「公衆開放RedmptionDB( )「應讀取」public RedemptionDB open()「 –