TAB*_*ABZ 2 android android-fragmentactivity
ActivityOne- >包含FragmentOne,我添加了onActivityResult方法
FragmentOne- >包含recyclerView并在项目上单击startActivityForResult转到ActivityTwo
ActivityTwo- >有关FragmentOne中recyclerView中项目详细信息
ActivityOne在ActivityResult上获取空数据
代码:ActivityOne
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Utils.showToast("intent receive");
if (requestCode==1111 && resultCode == RESULT_OK){
int position =(int) data.getExtras().get("position");
Log.d("TAG", "onActivityResult: "+ position);
}
}
Run Code Online (Sandbox Code Playgroud)
代码:FragmentOne
Intent i = new Intent(mContext.getApplicationContext(), ActivityTwo.class);
Bundle bundle = new Bundle();
bundle.putInt("id", id);
bundle.putInt("position",position);
i.putExtras(bundle);
((Activity) mContext).startActivityForResult(i,1111);
Run Code Online (Sandbox Code Playgroud)
代码:ActivityTwo
@Override
public void onBackPressed() {
super.onBackPressed();
if (hasChanges){
Intent intent = new Intent();
intent.putExtra("position",position);
setResult(Activity.RESULT_OK,intent);
}
finish();
}
Run Code Online (Sandbox Code Playgroud)
更改为。onBackPressed()您刚刚完成活动,没有将结果发送回去。在这种情况下,super.onBackPressed()还有一件事情与Finish会做同样的事情。因此,只需调用一个即可。
@Override
public void onBackPressed() {
if (hasChanges){
Intent intent = new Intent();
intent.putExtra("position",position);
setResult(Activity.RESULT_OK,intent);
}
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |