Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未从片段调用onActivityResult_Java_Android_Android Fragments_Navigation_Android Fragmentactivity - Fatal编程技术网

Java 未从片段调用onActivityResult

Java 未从片段调用onActivityResult,java,android,android-fragments,navigation,android-fragmentactivity,Java,Android,Android Fragments,Navigation,Android Fragmentactivity,我有一个包含BottomNavigationView和NavHostFragment的活动 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); BottomNavigationView bottomNavigationView = findViewB

我有一个包含
BottomNavigationView
NavHostFragment
的活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);

    bottomNavigationView.setSelectedItemId(R.id.navigation_profile);

    NavController navController = Navigation.findNavController(this, R.id.myNavHostFragment);
    NavigationUI.setupWithNavController(bottomNavigationView, navController); 
我还在这个父活动中添加了
onActivityResult
方法

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Toast.makeText(this,"Parent onActivity",Toast.LENGTH_SHORT).show();
    for (Fragment fragment : getSupportFragmentManager().getFragments()) {
        fragment.onActivityResult(requestCode, resultCode, data);
    }
}
在片段中,我有一个
ImageView
,在其中我使用Intent从用户那里拾取图像

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/jpeg");
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
this.startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PHOTO_PICKER);
在片段的
onActivityResult
中,我这样做:

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    Toast.makeText(getActivity(),"OnActivityResult",Toast.LENGTH_SHORT).show();

    // Result returned from launching the Intent to select image for profile
    if (requestCode == RC_PHOTO_PICKER && resultCode == Activity.RESULT_OK) {
        Toast.makeText(getActivity(),"Called",Toast.LENGTH_SHORT).show();
    }
}
问题是
onActivityResult
既不在父活动中调用,也不在片段中调用


我尝试了在中提供的各种解决方案但它们都没有工作

将下面的代码块添加到父onActivityResult

for (Fragment fragment : getSupportFragmentManager().getFragments()) {
   //send result to all child fragment
       if(fragment!=this)
        fragment.onActivityResult(requestCode, resultCode, data);
    }

不太确定,但是否该片段正在调用该意图?请尝试在单击imageView或按钮时启用侦听器,然后截取它并从父活动调用意图?

您不能将
intent.createChooser()
intent.GET\u CONTENT
一起使用-这对活动和片段都适用


相反,只需将您的意图直接用于
startActivityForResult

您的
RC\u PHOTO\u PICKER
值多少?
this.startActivityForResult
中的
this
是您的片段吗?@ianhanniballake
RC\u PHOTO\u PICKER
的值是2,定义为常量,
指片段您可以在AndroidManifest.xml中为您的活动包含条目吗?里面没有任何内容:
您是否使用了任何你的舱单上还有其他活动吗?特别是那些在清单条目中使用了
android:launchMode
的人?我在父活动中也使用了
Toast
,它没有被调用。我从udacity课程中获得了这段代码:
Firebase在一个周末
:。让我试试你的建议。还是不能解决这个问题。甚至没有在父活动中调用:(其他活动是否开始?
onCreate
仅在包含
navHostFragment
的父活动中调用。否,我的意思是在调用
startActivityForResult
后,
GET\u CONTENT
活动是否会出现在屏幕上?