首页 > 解决方案 > 对在 android studio 中自定义 listview 感到困惑

问题描述

我的数据库为空有什么问题?那里说Cursor cursor = myDb.getData(select * from Donation_Details); myDb : null,它弹出下面的错误。

我的数据库:空

这是运行时错误说

运行时错误

这是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));
        }

我想我在这里和那里错过了一些东西。但是我找不到它,或者我输入了错误的东西导致数据库为空?我能得到一些指导吗?预先感谢...

标签: javaandroidandroid-sqlite

解决方案


您需要初始化 'dbAccess myDb'


推荐阅读