Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在RecyclerView中显示SQLite数据_Android_Android Sqlite_Android Recyclerview - Fatal编程技术网

Android 在RecyclerView中显示SQLite数据

Android 在RecyclerView中显示SQLite数据,android,android-sqlite,android-recyclerview,Android,Android Sqlite,Android Recyclerview,我搜索了很多,但没有找到任何关于如何在RecyclerView中显示SQLite数据的分步指南。谁能告诉我怎么做 我的数据库适配器: public class DataBaseAdapter { DataBaseHelper helper; public DataBaseAdapter(Context context) { helper = new DataBaseHelper(context); } public long insertData(String name,

我搜索了很多,但没有找到任何关于如何在RecyclerView中显示SQLite数据的分步指南。谁能告诉我怎么做

我的数据库适配器:

public class DataBaseAdapter {

DataBaseHelper helper;

public DataBaseAdapter(Context context) {
    helper = new DataBaseHelper(context);
    }

public long insertData(String name, String card, String code) {

    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(DataBaseHelper.NAME, name);
    contentValues.put(DataBaseHelper.CARD, card);
    contentValues.put(DataBaseHelper.CODE, code);
    long id = db.insert(DataBaseHelper.TABLE_NAME, null, contentValues);
    return id;
}

public String getData(String name){
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        String personName = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(name + " " + card + " " + code + "\n");

    }
    return buffer.toString();
}

public String getAllData() {
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.UID, DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, null, null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index1 = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        int cid = cursor.getInt(index1);
        String name = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(cid + " " + name + " " + card + " " + code + "\n");
    }
    return buffer.toString();

}

static class DataBaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "cardsdatabase";
    private static final String TABLE_NAME = "CARDSTABLE";
    private static final String UID = "_id";
    private static final String NAME = "Name";
    private static final String CARD = "Card";
    private static final String CODE = "Code";
    private static final int DATABASE_VERSION = 1;
    private static final String CREATE_TABLE = "create table "
            + TABLE_NAME + " (" + UID
            + " integer primary key autoincrement, " + NAME
            + " text not null, " + CARD + " ext not null, " + CODE
            + " text not null);";
    private static final String DROP_TABLE = "DROP TABLE IF EXISTS "
            + TABLE_NAME;
    private Context context;

    public DataBaseHelper(Context context) {

        super(context, DataBaseHelper.DATABASE_NAME, null, DataBaseHelper.DATABASE_VERSION);
        this.context = context;
        Toast toast = Toast.makeText(context, "constructor called", Toast.LENGTH_LONG);
        toast.show();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //CREATE TABLE CARDSTABLE(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(255));
        try {
            db.execSQL(CREATE_TABLE);
            Toast toast = Toast.makeText(context, "onCreate called", Toast.LENGTH_LONG);
            toast.show();

        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_SHORT);
            toast.show();
        }


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        try {
            Toast toast = Toast.makeText(context, "onUpgrade called", Toast.LENGTH_LONG);
            toast.show();
            db.execSQL(DROP_TABLE);
            onCreate(db);
        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_LONG);
            toast.show();
        }

    }
}
public class DataBean {
//private variables
int _id;
String _name;
String _card_value;
String _card_code;

// Empty constructor
public DataBean(){

}
// constructor
public DataBean(int id, String name, String _card_value, String _card_code){
    this._id = id;
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}

// constructor
public DataBean(String name, String _card_value, String _card_code){
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}
// getting ID
public int getID(){
    return this._id;
}

// setting id
public void setID(int id){
    this._id = id;
}

// getting name
public String getName(){
    return this._name;
}

// setting name
public void setName(String name){
    this._name = name;
}

// getting CardValue
public String getCardValue(){
    return this._card_value;
}

// setting CardValue
public void setCardValue(String _card_value){
    this._card_value = _card_value;
}
// getting CardCode
public String getCardCode(){
    return this._card_code;
}

// setting CardCode
public void setCardCode(String _card_code){
    this._card_code = _card_code;
}
你的回答对我很有帮助,谢谢

编辑:

public class DataBaseAdapter {

DataBaseHelper helper;

public DataBaseAdapter(Context context) {
    helper = new DataBaseHelper(context);
    }

public long insertData(String name, String card, String code) {

    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(DataBaseHelper.NAME, name);
    contentValues.put(DataBaseHelper.CARD, card);
    contentValues.put(DataBaseHelper.CODE, code);
    long id = db.insert(DataBaseHelper.TABLE_NAME, null, contentValues);
    return id;
}

public String getData(String name){
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        String personName = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(name + " " + card + " " + code + "\n");

    }
    return buffer.toString();
}

public String getAllData() {
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.UID, DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, null, null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index1 = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        int cid = cursor.getInt(index1);
        String name = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(cid + " " + name + " " + card + " " + code + "\n");
    }
    return buffer.toString();

}

static class DataBaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "cardsdatabase";
    private static final String TABLE_NAME = "CARDSTABLE";
    private static final String UID = "_id";
    private static final String NAME = "Name";
    private static final String CARD = "Card";
    private static final String CODE = "Code";
    private static final int DATABASE_VERSION = 1;
    private static final String CREATE_TABLE = "create table "
            + TABLE_NAME + " (" + UID
            + " integer primary key autoincrement, " + NAME
            + " text not null, " + CARD + " ext not null, " + CODE
            + " text not null);";
    private static final String DROP_TABLE = "DROP TABLE IF EXISTS "
            + TABLE_NAME;
    private Context context;

    public DataBaseHelper(Context context) {

        super(context, DataBaseHelper.DATABASE_NAME, null, DataBaseHelper.DATABASE_VERSION);
        this.context = context;
        Toast toast = Toast.makeText(context, "constructor called", Toast.LENGTH_LONG);
        toast.show();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //CREATE TABLE CARDSTABLE(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(255));
        try {
            db.execSQL(CREATE_TABLE);
            Toast toast = Toast.makeText(context, "onCreate called", Toast.LENGTH_LONG);
            toast.show();

        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_SHORT);
            toast.show();
        }


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        try {
            Toast toast = Toast.makeText(context, "onUpgrade called", Toast.LENGTH_LONG);
            toast.show();
            db.execSQL(DROP_TABLE);
            onCreate(db);
        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_LONG);
            toast.show();
        }

    }
}
public class DataBean {
//private variables
int _id;
String _name;
String _card_value;
String _card_code;

// Empty constructor
public DataBean(){

}
// constructor
public DataBean(int id, String name, String _card_value, String _card_code){
    this._id = id;
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}

// constructor
public DataBean(String name, String _card_value, String _card_code){
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}
// getting ID
public int getID(){
    return this._id;
}

// setting id
public void setID(int id){
    this._id = id;
}

// getting name
public String getName(){
    return this._name;
}

// setting name
public void setName(String name){
    this._name = name;
}

// getting CardValue
public String getCardValue(){
    return this._card_value;
}

// setting CardValue
public void setCardValue(String _card_value){
    this._card_value = _card_value;
}
// getting CardCode
public String getCardCode(){
    return this._card_code;
}

// setting CardCode
public void setCardCode(String _card_code){
    this._card_code = _card_code;
}
数据库类:

public class DataBaseAdapter {

DataBaseHelper helper;

public DataBaseAdapter(Context context) {
    helper = new DataBaseHelper(context);
    }

public long insertData(String name, String card, String code) {

    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(DataBaseHelper.NAME, name);
    contentValues.put(DataBaseHelper.CARD, card);
    contentValues.put(DataBaseHelper.CODE, code);
    long id = db.insert(DataBaseHelper.TABLE_NAME, null, contentValues);
    return id;
}

public String getData(String name){
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        String personName = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(name + " " + card + " " + code + "\n");

    }
    return buffer.toString();
}

public String getAllData() {
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.UID, DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, null, null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index1 = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        int cid = cursor.getInt(index1);
        String name = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(cid + " " + name + " " + card + " " + code + "\n");
    }
    return buffer.toString();

}

static class DataBaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "cardsdatabase";
    private static final String TABLE_NAME = "CARDSTABLE";
    private static final String UID = "_id";
    private static final String NAME = "Name";
    private static final String CARD = "Card";
    private static final String CODE = "Code";
    private static final int DATABASE_VERSION = 1;
    private static final String CREATE_TABLE = "create table "
            + TABLE_NAME + " (" + UID
            + " integer primary key autoincrement, " + NAME
            + " text not null, " + CARD + " ext not null, " + CODE
            + " text not null);";
    private static final String DROP_TABLE = "DROP TABLE IF EXISTS "
            + TABLE_NAME;
    private Context context;

    public DataBaseHelper(Context context) {

        super(context, DataBaseHelper.DATABASE_NAME, null, DataBaseHelper.DATABASE_VERSION);
        this.context = context;
        Toast toast = Toast.makeText(context, "constructor called", Toast.LENGTH_LONG);
        toast.show();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //CREATE TABLE CARDSTABLE(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(255));
        try {
            db.execSQL(CREATE_TABLE);
            Toast toast = Toast.makeText(context, "onCreate called", Toast.LENGTH_LONG);
            toast.show();

        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_SHORT);
            toast.show();
        }


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        try {
            Toast toast = Toast.makeText(context, "onUpgrade called", Toast.LENGTH_LONG);
            toast.show();
            db.execSQL(DROP_TABLE);
            onCreate(db);
        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_LONG);
            toast.show();
        }

    }
}
public class DataBean {
//private variables
int _id;
String _name;
String _card_value;
String _card_code;

// Empty constructor
public DataBean(){

}
// constructor
public DataBean(int id, String name, String _card_value, String _card_code){
    this._id = id;
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}

// constructor
public DataBean(String name, String _card_value, String _card_code){
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}
// getting ID
public int getID(){
    return this._id;
}

// setting id
public void setID(int id){
    this._id = id;
}

// getting name
public String getName(){
    return this._name;
}

// setting name
public void setName(String name){
    this._name = name;
}

// getting CardValue
public String getCardValue(){
    return this._card_value;
}

// setting CardValue
public void setCardValue(String _card_value){
    this._card_value = _card_value;
}
// getting CardCode
public String getCardCode(){
    return this._card_code;
}

// setting CardCode
public void setCardCode(String _card_code){
    this._card_code = _card_code;
}
}

我将这些行添加到数据库适配器中:

public DataBean getDat(String name){
        DataBean bean=null;
        SQLiteDatabase db=this.getReadableDatabase();
        String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
        Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
        if (cursor.moveToFirst()) {
            int index = cursor.getColumnIndex(DataBaseHelper.UID);
            int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
            int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
            int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
            int id = cursor.getInt(index);
            String personName = cursor.getString(index2);
            String card = cursor.getString(index3);
            String code = cursor.getString(index4);
            bean = new DataBean(id, name, card, code);
        }
        return bean;
    }
    public List<DataBean> gelAllDat(){
        List<DataBean> list = new ArrayList<>();
        SQLiteDatabase db=this.getReadableDatabase();
        String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
        Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME, null, null, null, null);
        while (cursor.moveToNext()) {
            int index = cursor.getColumnIndex(DataBaseHelper.UID);
            int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
            int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
            int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
            int cid = cursor.getInt(index);
            String name = cursor.getString(index2);
            String card = cursor.getString(index3);
            String code = cursor.getString(index4);
            DataBean bean = new DataBean(cid, name, card, code);
            list.add(bean);
        }
        return list;

    }
publicdatabean getDat(字符串名){
数据bean=null;
SQLiteDatabase db=this.getReadableDatabase();
String[]columns={DataBaseHelper.NAME,DataBaseHelper.CARD,DataBaseHelper.CODE};
Cursor Cursor=db.query(DataBaseHelper.TABLE_名称、列、DataBaseHelper.NAME+“=”+NAME+“”,null,null,null,null);
if(cursor.moveToFirst()){
int index=cursor.getColumnIndex(DataBaseHelper.UID);
int index2=cursor.getColumnIndex(DataBaseHelper.NAME);
int index3=cursor.getColumnIndex(DataBaseHelper.CARD);
int index4=cursor.getColumnIndex(DataBaseHelper.CODE);
intid=cursor.getInt(索引);
String personName=cursor.getString(index2);
String card=cursor.getString(index3);
字符串代码=cursor.getString(index4);
bean=新的数据库(id、名称、卡、代码);
}
返回豆;
}
公开列表Gealldat(){
列表=新的ArrayList();
SQLiteDatabase db=this.getReadableDatabase();
String[]columns={DataBaseHelper.NAME,DataBaseHelper.CARD,DataBaseHelper.CODE};
Cursor Cursor=db.query(DataBaseHelper.TABLE_名称、列、DataBaseHelper.NAME、null、null、null);
while(cursor.moveToNext()){
int index=cursor.getColumnIndex(DataBaseHelper.UID);
int index2=cursor.getColumnIndex(DataBaseHelper.NAME);
int index3=cursor.getColumnIndex(DataBaseHelper.CARD);
int index4=cursor.getColumnIndex(DataBaseHelper.CODE);
int-cid=cursor.getInt(索引);
字符串名称=cursor.getString(index2);
String card=cursor.getString(index3);
字符串代码=cursor.getString(index4);
DataBean=新的数据库(cid、名称、卡、代码);
添加(bean);
}
退货清单;
}
最后一个问题呢?我需要在数据库适配器中更改我的插入数据

编辑2:

public class DataBaseAdapter {

DataBaseHelper helper;

public DataBaseAdapter(Context context) {
    helper = new DataBaseHelper(context);
    }

public long insertData(String name, String card, String code) {

    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(DataBaseHelper.NAME, name);
    contentValues.put(DataBaseHelper.CARD, card);
    contentValues.put(DataBaseHelper.CODE, code);
    long id = db.insert(DataBaseHelper.TABLE_NAME, null, contentValues);
    return id;
}

public String getData(String name){
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        String personName = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(name + " " + card + " " + code + "\n");

    }
    return buffer.toString();
}

public String getAllData() {
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DataBaseHelper.UID, DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, null, null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index1 = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        int cid = cursor.getInt(index1);
        String name = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        buffer.append(cid + " " + name + " " + card + " " + code + "\n");
    }
    return buffer.toString();

}

static class DataBaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "cardsdatabase";
    private static final String TABLE_NAME = "CARDSTABLE";
    private static final String UID = "_id";
    private static final String NAME = "Name";
    private static final String CARD = "Card";
    private static final String CODE = "Code";
    private static final int DATABASE_VERSION = 1;
    private static final String CREATE_TABLE = "create table "
            + TABLE_NAME + " (" + UID
            + " integer primary key autoincrement, " + NAME
            + " text not null, " + CARD + " ext not null, " + CODE
            + " text not null);";
    private static final String DROP_TABLE = "DROP TABLE IF EXISTS "
            + TABLE_NAME;
    private Context context;

    public DataBaseHelper(Context context) {

        super(context, DataBaseHelper.DATABASE_NAME, null, DataBaseHelper.DATABASE_VERSION);
        this.context = context;
        Toast toast = Toast.makeText(context, "constructor called", Toast.LENGTH_LONG);
        toast.show();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //CREATE TABLE CARDSTABLE(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(255));
        try {
            db.execSQL(CREATE_TABLE);
            Toast toast = Toast.makeText(context, "onCreate called", Toast.LENGTH_LONG);
            toast.show();

        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_SHORT);
            toast.show();
        }


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        try {
            Toast toast = Toast.makeText(context, "onUpgrade called", Toast.LENGTH_LONG);
            toast.show();
            db.execSQL(DROP_TABLE);
            onCreate(db);
        } catch (SQLException e) {
            Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_LONG);
            toast.show();
        }

    }
}
public class DataBean {
//private variables
int _id;
String _name;
String _card_value;
String _card_code;

// Empty constructor
public DataBean(){

}
// constructor
public DataBean(int id, String name, String _card_value, String _card_code){
    this._id = id;
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}

// constructor
public DataBean(String name, String _card_value, String _card_code){
    this._name = name;
    this._card_value = _card_value;
    this._card_code = _card_code;
}
// getting ID
public int getID(){
    return this._id;
}

// setting id
public void setID(int id){
    this._id = id;
}

// getting name
public String getName(){
    return this._name;
}

// setting name
public void setName(String name){
    this._name = name;
}

// getting CardValue
public String getCardValue(){
    return this._card_value;
}

// setting CardValue
public void setCardValue(String _card_value){
    this._card_value = _card_value;
}
// getting CardCode
public String getCardCode(){
    return this._card_code;
}

// setting CardCode
public void setCardCode(String _card_code){
    this._card_code = _card_code;
}
我将以下代码添加到我的DataBaseAdapter中:

public List<DataBean> getAllCards(){
    List<DataBean> list=new ArrayList<>();
    String query = "SELECT  * FROM " + DataBaseHelper.TABLE_NAME;
    SQLiteDatabase db = helper.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    while (cursor.moveToNext()) {
        //int index = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
        //int cid = cursor.getInt(index);
        String name = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        DataBean bean = new DataBean(name, card, code);
        list.add(bean);
    }

    return list;

}

public DataBean getData(String name) {
    //select _id,Name,Card,Code
    SQLiteDatabase db = helper.getReadableDatabase();
    String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
    DataBean bean=null;
    Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, DataBaseHelper.NAME + " = '" + name + "'", null, null, null, null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext()) {
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);

        String personName = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        //buffer.append(name + " " + card + " " + code + "\n");
        bean = new DataBean( name,card, code);

    }
    return bean;
}
public List getAllCards(){
列表=新的ArrayList();
String query=“SELECT*FROM”+DataBaseHelper.TABLE\u NAME;
SQLiteDatabase db=helper.getReadableDatabase();
Cursor Cursor=db.rawQuery(查询,空);
while(cursor.moveToNext()){
//int index=cursor.getColumnIndex(DataBaseHelper.UID);
int index2=cursor.getColumnIndex(DataBaseHelper.NAME);
int index3=cursor.getColumnIndex(DataBaseHelper.CARD);
int index4=cursor.getColumnIndex(DataBaseHelper.CODE);
//int-cid=cursor.getInt(索引);
字符串名称=cursor.getString(index2);
String card=cursor.getString(index3);
字符串代码=cursor.getString(index4);
DataBean=新数据库(名称、卡、代码);
添加(bean);
}
退货清单;
}
公共数据源getData(字符串名称){
//选择_id、姓名、卡、代码
SQLiteDatabase db=helper.getReadableDatabase();
String[]columns={DataBaseHelper.NAME,DataBaseHelper.CARD,DataBaseHelper.CODE};
数据bean=null;
Cursor Cursor=db.query(DataBaseHelper.TABLE_名称、列、DataBaseHelper.NAME+“=”+NAME+“”,null,null,null,null);
StringBuffer=新的StringBuffer();
while(cursor.moveToNext()){
int index2=cursor.getColumnIndex(DataBaseHelper.NAME);
int index3=cursor.getColumnIndex(DataBaseHelper.CARD);
int index4=cursor.getColumnIndex(DataBaseHelper.CODE);
String personName=cursor.getString(index2);
String card=cursor.getString(index3);
字符串代码=cursor.getString(index4);
//buffer.append(name+“”+card+“”+code+“\n”);
bean=新的数据库(名称、卡、代码);
}
返回豆;
}

您可以从一个Bean开始,以包含和建模信息,并使其更易于实现

public class DataBean{
    protected int id;
    protected String name;
    protected String card;
    protected String code;
    //Setter, Getters and constructor
    ...
}
创建了DataBean后,您可以将方法的返回类型更改为DataBean或列表,并在每个方法中填充,而不是返回包含所有字段的字符串

public DataBean getData(String name){
    ...
    DataBean bean = null;
    if (cursor.moveToFirst()) {
        int index = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
        int id = cursor.getInt(index);
        String personName = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        bean = new DataBean(id, name, card, code);    
    }
    return bean;
}

public List<DataBean> getAllData() {
    List<DataBean> list = new ArrayList<>();
    ...
    while (cursor.moveToNext()) {
        int index = cursor.getColumnIndex(DataBaseHelper.UID);
        int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
        int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
        int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
        int cid = cursor.getInt(index);
        String name = cursor.getString(index2);
        String card = cursor.getString(index3);
        String code = cursor.getString(index4);
        DataBean bean = new DataBean(cid, name, card, code);
        list.add(bean);
    }
    return list;
}
需要创建DataBeanAdapter和之后

公共类DataBeanAdapter扩展了RecyclerView.Adapter{ 私人清单项目; 私人空间布局; 公共DataBeanAdapter(列表项,int itemLayout){ 这个项目=项目; this.itemLayout=itemLayout; } @凌驾 public ViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图v=LayoutInflater.from(parent.getContext()).flate(itemLayout,parent,false); 返回新的视图持有者(v); } @凌驾 公共无效onBindViewHolder(ViewHolder,int位置){ 数据库项=items.get(位置); holder.name.setText(item.getName()); holder.card.setText(item.getCard()); //你要在物品中展示的所有东西 } @凌驾 public int getItemCount(){ 返回items.size(); } 公共静态类ViewHolder扩展了RecyclerView.ViewHolder{ 公共文本视图名称; 公共文本查看卡; 公共视图持有者(视图项视图){ 超级(项目视图); name=(TextView)itemView.findViewById(R.id.name); card=(TextView)itemView.findViewById(R.id.card); } } }
视图持有者的id、布局和属性取决于您将在RecyclerView中为每个项目显示的对象。

您正在泄漏
光标