haan​​droid数据库表不是在其他活动中创建的?

时间:2016-05-20 09:50:09

标签: java android mysql sqlite

我在android工作室中使用sqllite数据库我已经为每个负责创建表和插入记录的活动创建了一个管理器类我的血压管类代码是这样的,并且在插入时它成功返回插入行的id

public class PersonalManager  extends SQLiteOpenHelper {
       public static final String DATABASE="mydb";
public static final int DATABASE_VERSION=1;

public MedicineManger(Context context)
{

    super( context, DATABASE, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}


     public static abstract class MedicineEntry implements BaseColumns
{
    public static final String TABLE="Medicine";
    public static final String NAME="name";
    public static final String type="type";
    public static final String dosage="dosage";
}

public static final String CREATE="CREATE TABLE "+ MedicineEntry.TABLE+"( "+
        MedicineEntry._ID+" INTEGER PRIMARY KEY,"+
        MedicineEntry.NAME+" TEXT,"+
        MedicineEntry.type+" TEXT,"+
        MedicineEntry.dosage+" INTEGER )";

  @Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL(CREATE);
}

我表达了extends SQLiteOpenHelper

上面的代码适用于一个类但是为patientManager,会话管理器等创建另一个表我复制了相同的代码,但在插入过程中它返回id -1我的isertion in thaT

      String name=edName.getText().toString();
            String type=edtype.getText().toString();
            long dosage=Long.valueOf(eddosage.getText().toString());

            ContentValues cv=new ContentValues();
            cv.put(MedicineEntry.NAME, name);
            cv.put(MedicineEntry.type, type);
            cv.put(MedicineEntry.dosage, dosage);

            long id=sqldb.insert(MedicineEntry.TABLE, null, cv);
            Toast.makeText(this, "Record Added Generated id is : "+id, Toast.LENGTH_LONG).show();
            break;

} 但仅适用于具有不同表名的1个类相同的代码,并且在其他活动中无法使用以创建和插入值,您能否告诉我如何管理为每个活动创建多个表

2 个答案:

答案 0 :(得分:0)

您是否考虑使用Datasource类,并在您需要的每个类中使用它 Data Source android

答案 1 :(得分:0)

您必须创建一个Sqlitehelper类,您应该在其中创建与sqlite数据库相关的所有表和方法。