简体   繁体   English

侦听器内部的startactivityforresult()未调用onActivityResult()

[英]startactivityforresult() inside a listener not calling onActivityResult()

I know there are many similar questions on SO, but none of them resolved my issue. 我知道在SO上有很多类似的问题,但是没有一个解决了我的问题。

I am calling startActivityForResult inside a seekbar listener. 我正在搜索栏侦听器内调用startActivityForResult。 However, onActivityResult is not getting called. 但是,不会调用onActivityResult。 Here is my code. 这是我的代码。 What could be going wrong? 可能出什么问题了?

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 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();
 }
}

UPDATE 更新

Activity in which PeopleActivity fragment is used : 使用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");
}
}

It seems you're calling getActivity().startActivityForResult(in, 1); 看来您正在呼叫getActivity().startActivityForResult(in, 1); which would pass result back to activity and not fragment it self. 它将结果传递回活动,而不是自身分裂。

Try using PeopleActivity.this.startActivityForResult(in, 1); 尝试使用PeopleActivity.this.startActivityForResult(in, 1); , this should pass result back to fragment. ,这应将结果传递回片段。

Refer to this answer for more details: https://stackoverflow.com/a/6147919/2146871 请参阅此答案以获取更多详细信息: https : //stackoverflow.com/a/6147919/2146871

Found the answer. 找到了答案。 The issue was because I was not calling super.onactivityresult in my fragment activity DrawerFrontActivity. 问题是因为我没有在片段活动DrawerFrontActivity中调用super.onactivityresult。 Hence 因此

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android:onActivityResult()未调用startActivityForResult - Android: onActivityResult() is not calling for startActivityForResult Android:startActivityForResult没有调用onActivityResult - Android: startActivityForResult not calling onActivityResult 调用startActivityForResult永远不会传递给onActivityResult - Calling startActivityForResult never pass to onActivityResult 从onActivityResult调用新的StartActivityForResult - Calling a new StartActivityForResult from onActivityResult 返回startActivityForResult而不调用onActivityResult - startActivityForResult returning without calling onActivityResult Android:startActivityForResult停止调用onActivityResult - Android: startActivityForResult stopped calling onActivityResult 如何在onActivityResult中调用startActivityForResult? - How to call startActivityForResult inside onActivityResult? Android-在onActivityResult中调用startActivityForResult有多安全? - Android - how safe is calling startActivityForResult within onActivityResult? 我正在调用 startActivityForResult 并发现未调用 onActivityResult - I'm calling startActivityForResult and finding that onActivityResult is not called 在Android Dialog中,如何为startActivityForResult设置onActivityResult? - inside Android Dialog, how to setup onActivityResult for startActivityForResult?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM