我有一个实现接口(InterfaceA)的活动(ActivityA)。 当我想显示其他活动时,我使用以下代码:
Intent intent = new Intent(this, ActivityB.class);
// intent.putExtra("interface", this);
startActivity(intent);
和ActivityA
public class ActivityA extends Activity implements InterfaceA, Serializable
然后在ActivityB
Intent intent = getIntent();
Serializable s = intent.getExtras().getSerializable("interface");
if(s != null && s instanceof InterfaceA)
iInterface = (InterfaceA)s;
但是我在
期间收到错误android java.io.NotSerializableException
是否可以通过Intent发送活动(如Objective-C中的委托?
由于
答案 0 :(得分:2)
在ActivityB中,我创建了一个我想要显示的新本地对象 ActivityA,无需刷新ActivityA中的listView。
您可以ActivityB
开始ActivityA
,因为这不会重新创建ActivityA
。当您收到ActivityB
的结果时,请在列表中添加新对象并调用适配器notifyDataSetChanged()
。
在ActivityA 中,
public static final int REQ_CODE = 1;
// Starting an activity
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent, REQ_CODE );
并覆盖此方法以获得结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQ_CODE)
{
if(resultCode == Activity.RESULT_OK)
{
// Add the object in list and call adapter's notifyDataSetChanged()
}
}
}
在 ActivityB ,
中Intent data = new Intent();
// Put the new object as Serializable in Intent
setResult(Activity.RESULT_OK, data);
// And finally, close the activity
finish();