android - 将数据库类对象从主要 Activity 传递到另一个 Activity

标签 android sqlite

我正在尝试实现简单的数据库 CRUD 操作,以防更新操作用户移动到另一个屏幕,在该屏幕上他输入要更新的列的新旧值,因此在移动到下一个 Activity 时我想传递在 MainActivity 中创建的数据库类的对象到 UpdateActivity,我通过实现数据库类 Serializbale 来尝试它,但它崩溃了。

java.lang.RuntimeException: Parcelable encountered IOException reading a Serializable object

这是我试过的代码

主要 Activity

MyDbHandler dbObj = new MyDBHandler(this, null, null, 1);

public void updateBtnClicked(View view)
{

    Intent intent = new Intent(MainActivity.this, ActivityUpdate.class);
    intent.putExtra("Object", dbObj);
    startActivity(intent);

}

Activity 更新

intent = getIntent();

dbObj2 = (MyDBHandler) intent.getSerializableExtra("Object");

public void doneButtonClicked(View view)
{

    String str1 = newValue.getText().toString();
    String str2 = oldValue.getText().toString();

    dbObj2.updateProduct(str1, str2);

    finish();

}

那么数据库类对象如何从一个 Activity 传递到另一个 Activity 呢?谢谢

最佳答案

how could the database class object be passed from one to another activity

您不序列化数据库对象。你再次请求他们。

MyDbHandler dbHandler = new MyDbHandler(MainActivity.this);  // pass your Activity here 
dbHandler.update(new Foo(42));

MyDbHandlerSQLiteOpenHelper 的一些扩展,这样写的

public class MyDbHandler extends SQLiteOpenHelper {
    // Database Info
    private static final String DATABASE_NAME = "DatabaseName";
    private static final int DATABASE_VERSION = 1;

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion != newVersion) {
            // TODO
        }

    /**
     * Update method defined here
    **/
    public void update(Foo bar) {
        SQLiteDatabase db = getWritableDatabase();
        // TODO: Write to & close the database
    }
}

关于android - 将数据库类对象从主要 Activity 传递到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38601316/

相关文章:

android - 退出应用程序后服务停止

sqlite - 尝试更新单行中的多个字段,但创建重复行

android - 这样拍照时,相机文件什么时候保存在Android中?

java - Android:当许多包使用 R.java 时出错

扩展控件设置 BumbleBee 中缺少 Android Studio 代理选项卡

android - 为什么 blob 值不存储在 android 中的 sqlite 数据库中

java - windows下如何修改sqlite数据库的读/写权限?

python - 如何在 virtualenv 中升级 python 2.7.3 中的 sqlite3?

使用外键创建表的 SQLite 语法

java - 如何对编辑文本记录的数据进行操作