我正在打开片段视图触摸上的活动。如何将数据返回到打开活动的片段。
答案 0 :(得分:0)
1-首先,您必须使用startActivityForResult()
2-确保在“活动”的super.onActivityResult
方法中调用onActivityResult()
(如果正在实现)
3-在片段中,您只需要实现onActivityResult()
并根据需要处理结果
答案 1 :(得分:0)
要从活动中获取数据以达到您的意图,请像下面这样添加它:
Intent intent = new Intent(this, MyIntent.class);
intent.putExtra("aString", aString);
intent.putExtra("aSomething", customSerializableType);
startActivityForResult(intent, MY_REQUEST_ID);
在Intent中将其发布出来,例如:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
Intent intent = getIntent();
String newString = intent.getStringExtra("aString");
CustomSerializableType newSomething = intent.getSerializableExtra("aSomething");
}
根据您的意图将数据发送回:
private void done() {
Intent intent = new Intent();
intent.putExtra("aString", aString);
intent.putExtra("aSomething", customSerializableType);
setResult(Activity.RESULT_OK, intent);
finish();
}
然后通过以下方式在托管活动中获取数据
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case MY_REQUEST_ID:
if (resultCode == Activity.RESULT_OK) {
String newString = data.getStringExtra("aString");
CustomSerializableType newSomething = data.getSerializableExtra("aSomething");
}
break;
}