[Overview] startActivityForResult able to use the return value is between activity, recent demand in the fragment click activity selection criteria jump back to the fragment, found that the use getActivity (). StartActivityForResult (intent, 1001) there is no effect, It is to be replaced fragment.this.startActivityForResult .
Usage scenarios] Activity return value to Fragment, a search condition, condition selection
fragment of code:
tv_text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(getActivity(), SearchActivity.class);
imgFragment.this.startActivityForResult(intent,1001);
}
});
activity Code:
BtnSure.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.putExtra("mClass",gclass);
intent.putExtra("mClient",gClient);
intent.putExtra("staff",staff);
setResult(1001,intent);
finish();
}
});
fragment receiving activity return parameters:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1001&&requestCode==1001){
mClient=data.getStringExtra("mClient");
Log.e("retu",mClient+"mclient");
gclass=data.getStringExtra("mClass");
staff=data.getStringExtra("staff");
imgList.clear();
page=1;
initData();
}
}
Note: The main difference is that the return to activity startActivityForResult before you need to get the current fragment.