Android通过Intent发送界面

时间:2016-02-25 09:37:12

标签: android android-intent

我有一个实现接口(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中的委托?

由于

1 个答案:

答案 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();