我试图实现简单的数据库CRUD操作,以防UPDATE操作用户移动到另一个屏幕,在那里他为要更新的列输入新值和旧值在转移到下一个活动时,我想将在MainActivity中创建的数据库类的对象传递给UpdateActivity,我试图通过实现Database类Serializbale尝试它,但它崩溃。将数据库类对象从主活动传递到另一个活动
java.lang.RuntimeException: Parcelable encountered IOException reading a Serializable object
这里是我试过
MainActivity代码
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);
}
ActivityUpdate
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中我们都要执行一些数据库操作,我们已经创建了一个DB类的新对象并将当前Activity作为上下文传递给它?例如在我的情况下,你建议在MainActivity中创建数据库类的对象,这是我已经在做的事情,但是我想从另一个活动ActivityUpdate和第一行中提到的同一行代码执行更新任务,但是ActivityUpdate会执行在那里取代MainActivity? – shehzy
正确,我只是举个例子。你只需要一个上下文 –