android - SQLite数据库:- Activity unable to start activity info

标签 android database sqlite

我正在尝试从数据库中获取值,但出现异常无法实例化 Activity 组件信息是什么问题我已经提到了 list 文件中的所有 Activity 名称,但仍然强制关闭。

public class DataBaseCreator {
private static final String DATABASE_NAME = "SetMessage.db";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_TABLE = "Set_message";
public static final String KEY_ROWID = "_id";
public static final String KEY_MESSAGE = "Message";
public static final String KEY_TITTLE = "Tittle";
public static final String KEY_DATEFROM = "Date_From";
public static final String KEY_STARTTIME= "Start_Time";
public static final String KEY_EXPIRYDATE="Expiry_Date";
public static final String KEY_EXPIRYTIME="Expiry_Time";
private Context context;
private SQLiteDatabase db;
 private OpenHelper mDbHelper;
private SQLiteStatement insertStmt;

public DataBaseCreator(Context context) {
    this.context = context;
    OpenHelper openHelper = new OpenHelper(this.context);
    this.db = openHelper.getWritableDatabase();
}


public long insert(String TABLE_NAME, String TABLE_FIELDS, String TABLE_VALUES) {
    String INSERT = "insert into " 
            + TABLE_NAME + "("+ TABLE_FIELDS +") values ("+TABLE_VALUES+")";
    this.insertStmt = this.db.compileStatement(INSERT);
    return this.insertStmt.executeInsert();
}
public void closeDb() {
    this.db.close();
}  
private static class OpenHelper extends SQLiteOpenHelper {

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE Set_message (Tittle VARCHAR(30) NOT NULL," +
                "Message VARCHAR(30) NOT NULL,"+
                "Date_from DATETIME NOT NULL,"+
                "Start_Time DATETIME NOT NULL,"+
                "Expiry_Date DATETIME NOT NULL,"+
                "Expiry_Time DATETIME NOT NULL)");

    }

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

}

public void open() {
     mDbHelper = new OpenHelper(context);
     db = mDbHelper.getWritableDatabase();

}

public void close() {
    mDbHelper.close();
  }

public Cursor fetchRecords(long id) throws SQLException {

    Cursor mCursor =

      db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID,
              KEY_MESSAGE,  KEY_TITTLE,KEY_DATEFROM ,KEY_STARTTIME,KEY_EXPIRYDATE,KEY_EXPIRYTIME}, KEY_ROWID + "=" + id, null,
          null, null, null, null);
    if (mCursor != null) {
      mCursor.moveToFirst();
    }
    return mCursor;

  }

}

我试图获取vales的主要 Activity 是

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    baseCreator.open();
    Cursor c=baseCreator.fetchRecords(1);
    Toast.makeText(this, "Tittle: " + c.getString(1) + " Message: "+ c.getString(2)+ " Date_from: "+ c.getString(3)+ " Start_Time: "+ c.getString(4)+ " Expiry_Date: "+ c.getString(5)+ " Expiry_Time: "+ c.getString(6), Toast.LENGTH_LONG).show();
    baseCreator.close();
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.setdetails);

最佳答案

您可能忘记在打开之前在onCreate方法中创建DataBaseCreator。

baseCreator =  new DataBaseCreator(this.getApplicationContext());

更新:

将列 _id 添加到表中:

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE Set_message ("+
            "_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
            "Tittle VARCHAR(30) NOT NULL," +
            "Message VARCHAR(30) NOT NULL,"+
            "Date_from DATETIME NOT NULL,"+
            "Start_Time DATETIME NOT NULL,"+
            "Expiry_Date DATETIME NOT NULL,"+
            "Expiry_Time DATETIME NOT NULL)");

}

关于android - SQLite数据库:- Activity unable to start activity info,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9680982/

相关文章:

android - 处理 Android 中的 sqlite 'database is locked' 错误

android - 如何在android中仅在横向模式下旋转显示?

android - 我是否需要存储我的文件的路径,或者我可以简单地记下它们的存储类型吗?

android - RecyclerView ItemTouchHelper 滑动操作在 fragment 类中不起作用

mysql - 使用现有行中的数据插入行

mysql - "YAML syntax error occurred while parsing config/database.yml"Ruby on Rails

java - SQLite中如何连接三个表?

Android RecyclerView Edittext 问题

java - 对称树算法

sqlite - android sqlite - 插入语法错误(代码1)