[英]Android: onActivityResult() is not calling for startActivityForResult
[英]startactivityforresult() inside a listener not calling onActivityResult()
我知道在SO上有很多类似的问题,但是没有一个解决了我的问题。
我正在搜索栏侦听器内调用startActivityForResult。 但是,不会调用onActivityResult。 这是我的代码。 可能出什么问题了?
public class PeopleActivity extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
volumeControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressChanged = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progressChanged = progress;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Intent in = new Intent(getActivity(), com.mytest.mytestninja.RangingActivity.class);
getActivity().startActivityForResult(in, 1);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
rangeValue.setText("CALLED");
}
}
RangingActivity.java
public class RangingActivity extends Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranging);
Intent returnIntent = new Intent();
returnIntent.putExtra("result", firstBeacon.toString());
setResult(RESULT_OK, returnIntent);
finish();
}
}
更新
使用PeopleActivity片段的活动:
public class DrawerFrontActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bar = getSupportActionBar();
Drawable myIcon = getResources().getDrawable( R.drawable.bluebar);
bar.setBackgroundDrawable(myIcon);
SherlockFragment fragment;
fragment = new PeopleActivity();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.rlDrawerHome, fragment);
transaction.commit();
setTitle("Home");
bar.setTitle("Home");
}
}
看来您正在呼叫getActivity().startActivityForResult(in, 1);
它将结果传递回活动,而不是自身分裂。
尝试使用PeopleActivity.this.startActivityForResult(in, 1);
,这应将结果传递回片段。
请参阅此答案以获取更多详细信息: https : //stackoverflow.com/a/6147919/2146871
找到了答案。 问题是因为我没有在片段活动DrawerFrontActivity中调用super.onactivityresult。 因此
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.