Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 Studio中的两个不同活动访问SQLite数据库_Android_Sqlite - Fatal编程技术网

从Android Studio中的两个不同活动访问SQLite数据库

从Android Studio中的两个不同活动访问SQLite数据库,android,sqlite,Android,Sqlite,我有三门课,即。saveinSQL(我的数据库类)、Home(我要访问数据库的类)、Create(我创建数据库的类)。我有个问题。我想访问Home类中创建类创建的数据库。有人能帮我吗 public class saveinSQL extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 2; private static final String PETITIONS_TABLE_NAME = "P

我有三门课,即。saveinSQL(我的数据库类)、Home(我要访问数据库的类)、Create(我创建数据库的类)。我有个问题。我想访问Home类中创建类创建的数据库。有人能帮我吗

public class saveinSQL extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 2;
    private static final String PETITIONS_TABLE_NAME = "Petitions";
    private static final String DATABASE_NAME = "myDB.db";
    public static final String PETITIONS_COLUMN_ID = "id";
    public static final String PETITIONS_COLUMN_HEADING = "heading";
    public static final String PETITIONS_COLUMN_DESCRIPTION = "description";
    public static final String PETITIONS_COLUMN_PEOPLE = "people";

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

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(
            "create table Petitions" +
                    "(id integer primary key, heading text, description text, people text)"
    );
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS Petitions");
    onCreate(db);
}

public boolean insertPetition  (String heading, String description,String people)
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put("heading", heading);
    contentValues.put("description", description);
    contentValues.put("people", people);
    db.insert("Petitions", null, contentValues);
    return true;
}

public Cursor getData(int id){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "select * from Petitions where id="+id+"", null );
    return res;
}




public  String getHeader(int id){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res = db.rawQuery("select * from Petitions where id=" + id + "", null);
    res.moveToFirst();
    for(int i = 1; i < id; i++){
        res.moveToNext();
    }
    String header = res.getString(res.getColumnIndex(saveinSQL.PETITIONS_COLUMN_HEADING));
    return header;
}

public String getDescription(int id){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res = db.rawQuery("select * from Petitions where id=" + id + "", null);
    res.moveToFirst();
    for(int i = 1; i < id; i++){
        res.moveToNext();
    }
    String descrip = res.getString(res.getColumnIndex(saveinSQL.PETITIONS_COLUMN_DESCRIPTION));
    return descrip;
}

public String getPeople(int id){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res = db.rawQuery("select * from Petitions where id=" + id + "", null);
    res.moveToFirst();
    for(int i = 1; i < id; i++){
        res.moveToNext();
    }
    String people = res.getString(res.getColumnIndex(saveinSQL.PETITIONS_COLUMN_PEOPLE));
    return people;
}




public int numberOfRows(){
    SQLiteDatabase db = this.getReadableDatabase();
    int numRows = (int) DatabaseUtils.queryNumEntries(db, PETITIONS_TABLE_NAME);
    return numRows;
}

public boolean updatePetitiont (Integer id, String heading, String description, String people)
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put("heading", heading);
    contentValues.put("description", description);
    contentValues.put("people", people);
    db.update("Petitions", contentValues, "id = ? ", new String[] { Integer.toString(id) } );
    return true;
}

public Integer deletePetition (Integer id)
{
    SQLiteDatabase db = this.getWritableDatabase();
    return db.delete("Petitions",
            "id = ? ",
            new String[] { Integer.toString(id) });
}

public ArrayList<String> getAllPetitions()
{
    ArrayList<String> array_list = new ArrayList<String>();

    //hp = new HashMap();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "select * from Petitions", null );
    res.moveToFirst();

    while(res.isAfterLast() == false){
        array_list.add(res.getString(res.getColumnIndex(PETITIONS_COLUMN_HEADING)));
        res.moveToNext();
    }
    return array_list;
    }
}
公共类savensql扩展了SQLiteOpenHelper{
私有静态最终int数据库_VERSION=2;
私有静态最终字符串请求\u表\u NAME=“请求”;
私有静态最终字符串数据库\u NAME=“myDB.db”;
公共静态最终字符串请求\u列\u ID=“ID”;
公共静态最终字符串请求\u列\u HEADING=“HEADING”;
公共静态最终字符串请求\u COLUMN\u DESCRIPTION=“DESCRIPTION”;
public static final String请求\u COLUMN\u PEOPLE=“PEOPLE”;
公共saveinSQL(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
db.execSQL(
“创建表请求”+
(id整数主键、标题文本、说明文本、人物文本)
);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
db.execSQL(“如果存在请求,则删除表”);
onCreate(db);
}
公共布尔插入请求(字符串标题、字符串描述、字符串人)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues ContentValues=新ContentValues();
contentValues.put(“标题”,标题);
contentValues.put(“说明”,说明);
contentValues.put(“人”,people);
db.插入(“请求”,空,内容值);
返回true;
}
公共游标getData(int-id){
SQLiteDatabase db=this.getReadableDatabase();
Cursor res=db.rawQuery(“从请求中选择*,其中id=“+id+”,null);
返回res;
}
公共字符串getHeader(int-id){
SQLiteDatabase db=this.getReadableDatabase();
Cursor res=db.rawQuery(“从请求中选择*,其中id=“+id+”,null);
res.moveToFirst();
for(int i=1;i
在Home类中,必须实例化
saveinSQL
的对象,并调用与要执行的活动对应的方法。例如:

saveinSQL mySaveinSQL = new saveinSQL(<context>);
mySaveinSQL.getHeader(id);
saveinSQL mySaveinSQL=new saveinSQL();
getHeader(id);

了解单例模式。