我有片段(F),它调用活动(A)。在活动(A)中按下按钮(B)时,活动必须将选定的数组列表值返回到片段(F)并完成活动(A)...这可能吗?
我从 Activity 知道您可以发送意图如下的数据:
Bundle bundle = new Bundle();
bundle.putString("key", "value");
// set Fragmentclass Arguments
Fragmentclass fragmentobj = new Fragmentclass();
fragmentobj.setArguments(bundle);
在Fragment onCreateView方法中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("key");
return inflater.inflate(R.layout.fragment, container, false);
}
但这适用于调用不适用于同一片段的新片段。
我的问题:被调用的 Activity 是否可以将值返回给调用者片段?
public class HomeFragment extends Fragment{
Button attachment;
String strtext = "check";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.home_fragment, null);
attachment = (Button) rootView
.findViewById(R.id.btn_activity);
Toast.makeText(getActivity(),
"Key= " + strtext,
Toast.LENGTH_LONG).show();
attachment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent myIntent = new Intent(getActivity(), AndroidCustomGalleryActivity.class);
getActivity().startActivityForResult(myIntent,999);
}
});
return rootView;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 999){
strtext = getArguments().getString("key");
Toast.makeText(getActivity(),
"Key= " + strtext,
Toast.LENGTH_LONG).show();
}
}
}
在被叫活动中
Bundle bundle = new Bundle();
bundle.putString("key", "value");
HomeFragment fragmentobj = new HomeFragment();
fragmentobj.setArguments(bundle);
finish();