2014-12-27 10 views
7

में एंड्रॉइड.database.sqlite.SQLitepenhelper" में कोई डिफ़ॉल्ट कन्स्ट्रक्टर उपलब्ध नहीं है SQLiteOpenHelper के साथ कक्षा का विस्तार करने का प्रयास कर रहा है, लेकिन यह त्रुटि दिखाती है: "एंड्रॉइड.database.sqlite.SQLitepenhelper में कोई डिफ़ॉल्ट कन्स्ट्रक्टर उपलब्ध नहीं है "दूसरे के साथ" को हल नहीं कर सकते प्रतीक श्रेणी, ध्यान दें, ... ""एंड्रॉइड स्टूडियो

class DbHelper extends SQLiteOpenHelper { 


    @Override 
    public void onCreate(SQLiteDatabase db) { 

     db.execSQL(Category.getSql()); 
     db.execSQL(Note.getSql()); 
     db.execSQL(Attachment.getSql()); 
     db.execSQL(CheckItem.getSql()); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME); 
     db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME); 
     db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME); 
     db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME); 

     onCreate(db); 
    } 

उत्तर

13

आप एक स्पष्ट निर्माता खुद कि SQLiteOpenHelper में 4- या 5 आर्ग super निर्माता कॉल को परिभाषित करने की जरूरत है।

उदाहरण के लिए:

public DbHelper(Context context) { 
    super(context, "database.db", null, 1); 
} 

जहां database.db अपने डेटाबेस फ़ाइल का नाम है और 1 संस्करण है।

+0

के बारे में इस प्रश्न का प्रयास करें वेबव्यू क्लास, लेकिन इसने मेरे प्रश्न का उत्तर दिया। धन्यवाद! – Seth

2

अपने DBHelper बच्चे फिर इस पोस्ट की मदद, othervise आप allready understandfirst आप कक्षा के बाहर में इस प्रकार के यह परिभाषित कर सकते हैं, इसका मतलब है uperside हैं ...

private DBHelper ourHelper; 
private final Context ourContext; 

फिर इस

class DbHelper extends SQLiteOpenHelper { 
public DBHelper(Context context) { 
     super(context, DB_NAME, null, DB_VIRSION); 
     // TODO Auto-generated constructor stub 
    } 

@Override 
public void onCreate(SQLiteDatabase db) { 

    db.execSQL(Category.getSql()); 
    db.execSQL(Note.getSql()); 
    db.execSQL(Attachment.getSql()); 
    db.execSQL(CheckItem.getSql()); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME); 

    onCreate(db); 
} 
का उपयोग

और फिर अपने मूल वर्ग

public MyDatabase(Context c){ 
    ourContext=c; 
} 
संबंधित मुद्दे