сбивает с толку о настройке просмотра списка в андроид студии - PullRequest
0 голосов
/ 03 сентября 2018

В чем проблема, что мой БД нулевой? там написано Cursor cursor = myDb.getData(select * from Donation_Details); myDb : null и выскакивает ошибка ниже.

myDb:Null

А вот ошибка выполнения говорит

Runtime Error

Вот DatabaseHelper, который Когда я назначаю и объявляю базу данных.

 private static final String DATABASE_NAME = "eBossCharity.db";
    private static  final int DATABASE_VERSION = 1;

    public dbOpenHelper(Context context){
        super(context,DATABASE_NAME,null,DATABASE_VERSION);
    }

Вот dbAccess, когда я хочу получить данные из базы данных.

public dbOpenHelper openHelper;
    public SQLiteDatabase db;
    private static dbAccess instance;

    public dbAccess(Context context) {
        this.openHelper = new dbOpenHelper(context);
    }

    public static dbAccess getInstance(Context context) {
        if (instance == null) {
            instance = new dbAccess(context);
        }
        return instance;
    }

    public Cursor getData(String sql) {
        db = openHelper.getReadableDatabase();
        return db.rawQuery("", null);
    }

Вот Summary page, когда я хочу показать данные в виде списка для настройки. Я ставлю точку останова в строке 13 и отлаживаю ее. Там написано, что моя база данных пуста. Я вызвал dbAccess метод getData и захватил базу данных "Donation_details". Он должен показывать данные ...

ListView listView;
    ArrayList<Model> mList;
    RecordListAdapter mAdapter = null;
    dbAccess myDb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_summary__page);

        this.listView = findViewById(R.id.listView);
        mList = new ArrayList<>();
        mAdapter = new RecordListAdapter(this,R.layout.row,mList);
        listView.setAdapter(mAdapter);
        Cursor cursor = myDb.getData("Select * from Donation_Details");
        mList.clear();
        while(cursor.moveToNext()){
            int id = cursor.getInt(0);
            String txnno = cursor.getString(1);
            String name = cursor.getString(2);
            String txndate = cursor.getString(3);
            BigDecimal amount = BigDecimal.valueOf(cursor.getDouble(4));
            String description1 = cursor.getString(5);
            String createddate = cursor.getString(7);

            mList.add(new Model(id,txnno,name,txndate,amount,description1,createddate));
        }

Я думаю, что кое-что пропустил здесь и там. Но я не смог найти его, или, может быть, я что-то неправильно набрал, чтобы база данных была нулевой? Могу ли я получить руководство? Заранее благодарен ...

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вам нужно инициализировать 'dbAccess myDb'

0 голосов
/ 03 сентября 2018

Решение:

Напишите это

myDb = new dbAccess(this);

В вашем onCreate () после строки setContentView(...)

Попробуй ..

...