[英]How to finish current activity and go back to previous fragment?
片段中的“添加”按鈕調用該活動。 通過在此活動上按“完成”按鈕,我想使用捆綁包將數據發送到上一個片段並關閉此活動。
我面臨的問題是,在“完成”按鈕上點擊活動沒有任何反應。
分段:
btnAddSkills.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(getActivity(), SkillActivity.class);
Bundle bundle = new Bundle();
bundle.putString("caller","editprofile");
bundle.putParcelableArrayList("userskills", (ArrayList<Skill>) userskills);
intent.putExtras(bundle);
startActivity(intent);
}
});
活動:
btnDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditProfileFragment epf = new EditProfileFragment();
FragmentManager fm = getSupportFragmentManager();
Bundle args = new Bundle();
args.putParcelableArrayList("newskills", (ArrayList<Skill>) newskills);
epf.setArguments(args);
fm.popBackStackImmediate();
}
});
您必須使用界面來共享數據 b/w 活動和片段。在此處檢查
使用開始活動作為結果
Intent intent=new Intent(getActivity(), SkillActivity.class);
Bundle bundle = new Bundle();
bundle.putString("caller","editprofile");
bundle.putParcelableArrayList("userskills", (ArrayList<Skill>) userskills);
intent.putExtras(bundle);
startActivityForResult(intent,122);// you can change this number
並在包含片段的活動中添加此實現以將結果傳遞給片段
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
並在完成按鈕
btnDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent returnIntent = new Intent();
Bundle args = new Bundle();
args.putParcelableArrayList("newskills",
(ArrayList<Skill>)newskills);
returnIntent.putExtras("result", args);
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
});
最后在你的片段中實現這個以接收數據
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 122 && resultCode == Activity.RESULT_OK) {
Bundel bundle=data.getExtras();
String caller=data.getString("caller");
ArrayList<Skill> skills=data.getParcelable("userskills");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.