为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇潇雨雨 2021-11-03 09:59:48
如您所见,我想创建一个外部类作为我的活动和我的数据库之间的适配器,以使其更安全 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 ;";        }
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

您有几个问题,您在函数中放置了一个函数,这是无效的语法 - 它与类变量可见性无关。也不确定这种方法如何更安全,因为您的数据库变量是包范围的。要解决您的直接问题,您需要这样的东西:


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


}


查看完整回答
反对 回复 2021-11-03
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号