我不能在我创建的内部类中使用外部类中的数据

如您所见,我想创建一个外部类作为我的活动和我的数据库之间的适配器,以使其更安全 nut 它只是拒绝使用来自内部类的值,我试图导入这些值但它导入它们没有意义,我试图隐藏它们你能解决这个问题还是给我另一种方法来让我的代码工作


public class DataBaseConnection {

    DataBase DataBase;

    public DataBaseConnection(Context context)    {

         DataBase = new DataBase(context);

          public void  dataInsert (String classnumber , String studentsnumber) {

         SQLiteDatabase sqLiteDatabase = dataBase.getWritableDatabase();

            ContentValues contentValues = new ContentValues();

            contentValues.put(DataBase.classname);

            contentValues.put(DataBase.studentsnumber);

        }

    }


    class DataBase  extends SQLiteOpenHelper {

        private static final String database_name = "DB";

        private static final int database_vesion =1;

        private static final String UID = "id";

        private static final String name = "Name";

        private static final String work_mark = "Works Mark";

        private static final String test_mark = "Tests mark";

        private static final String tableName = "Students";

        private static final String classname = "Class name";

        private static final String studentsnumber = "Students number";

        private Context context;

        private static final String tablename1 = "Class";

        private static final String CREATE_TABLE1 = "CREATE TABLE " +tablename1+" " +

                " ("+UID+" INTEGER PRIMARY KEY AUTOINCREMENT," +

                " "+classname+" TEXT VARCHAR(255))," +

                " "+studentsnumber+" INTEGER ;";

        }


潇潇雨雨
浏览 130回答 1
1回答

SMILET

您有几个问题,您在函数中放置了一个函数,这是无效的语法 - 它与类变量可见性无关。也不确定这种方法如何更安全,因为您的数据库变量是包范围的。要解决您的直接问题,您需要这样的东西:public class DataBaseConnection {    private final DataBase dataBase;    public DataBaseConnection(Context context)    {        dataBase = new DataBase(context);    }    public void dataInsert (String classnumber , String studentsnumber) {        SQLiteDatabase sqLiteDatabase = dataBase.getWritableDatabase();        ContentValues contentValues = new ContentValues();        contentValues.put(DataBase.classname, classnumber);        contentValues.put(DataBase.studentsnumber, studentsnumber);        sqLiteDatabase.insert( // insert here  )    }.. Rest of class}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java