我創建SQL數據庫和我基於this site. 問題是,我不知道如何訪問內部類的方法,而外部類具有私有構造函數。從另一個類訪問具有私有類構造函數的內部子類
public class MyDBHandler {
private MyDBHandler() {
}
public static class FeedEntry implements BaseColumns {
public static final String TABLE_NAME = "Tasks";
public static final String COLUMN_NAME_TITLE = "TASK_LABEL";
}
public class FeedReaderDbHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "myDatabase.db";
public FeedReaderDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public long saveTasks(String title) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(FeedEntry.COLUMN_NAME_TITLE, title);
long newRowId = db.insert(FeedEntry.TABLE_NAME, null, contentValues);
return newRowId;
}
}
}
我想從另一個java文件的onClick(View v)方法訪問saveTasks(String title)方法。
我試過某事像這樣:
MyDBHandler.FeedReaderDbHelper dbHelper = new MyDBHandler.FeedReaderDbHelper(v.getContext());
但當然,我得到一個「MyDBHandler不是一個封閉類」錯誤。
OR
MyDBHandler.FeedReaderDbHelper dbHelper= new MyDBHandler().new FeedReaderDbHelper(v.getContext());
但同樣,Android的工作室一直告訴我: 「MyDbHandler有一個私人的訪問」
它甚至有可能做到這一點呀?
將您FeedReaderDbHelper全班分成單獨的文件 –
爲什麼你到底是執行它作爲一個內部類?在這個例子中,它顯然是一個單獨的課程。 –
爲什麼你不能公開構造函數? –