我在清单文件中写了一个后退按钮(就像那里http://developer.android.com/training/implementing-navigation/ancestral.html)
<activity android:name=".Activity2"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"
/>
</activity>
如何在返回MainActivity时从活动2传输数据?还是有更好的方法在操作栏中制作后退按钮?
答案 0 :(得分:1)
首先,使用Activity2
从MainActivity
调用Activity.startActivityForResult()
。
在Activity2
中,一旦用户完成了设置所需数据的操作,请致电Activity.setResult()
。您可以将resultCode设置为RESULT_OK
,并在此处传递Intent
,其中包含您要返回的Parcelable
数据。
最后,您将覆盖Activity.onActivityResult()
中的MainActivity
。这将在Activity2
完成时调用。在这里,您将收到RESULT_OK
的resultCode,您可以访问Intent
设置的Activity2
。
请参阅此链接Starting Activities and Getting Results | Activity | Android Developers
答案 1 :(得分:0)
正确的方法是使用startActivityForResult()
启动SecondActivity并使用onActivityResult()
从SecondActivity接收数据到FirstActivity。
请参阅此处:http://developer.android.com/training/basics/intents/result.html
答案 2 :(得分:0)
从MainActivity
,您可以使用Activity2
启动startActivityForResult()
- 然后在第二个活动中,您可以设置您希望在MainActivity
时发送回Intent resultIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,resultIntent );
的结果。用户单击后退按钮。你做了类似的事情:
getParentActivityIntent ()
或者,您可以在getSupportParentActivityIntent()
中覆盖Activity2
(或@Override
public Intent getParentActivityIntent () {
Intent intent = super.getParentActivityIntent();
//here you put the data that you want to send back - could be Serializable/Parcelable, etc
intent.putExtra("result",result);
return intent;
}
,如果使用支持库),例如:
Proguard