Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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 虽然存在片段事务的commit(),但未调用onAttach()-方法_Java_Android_Android Fragments_Android Activity - Fatal编程技术网

Java 虽然存在片段事务的commit(),但未调用onAttach()-方法

Java 虽然存在片段事务的commit(),但未调用onAttach()-方法,java,android,android-fragments,android-activity,Java,Android,Android Fragments,Android Activity,我想知道,我如何才能弄清楚,为什么我的onAttach方法没有被调用。存在片段事务的提交和相应的替换。我的日志消息和调试步骤告诉我,QuotesFragment类的onAttach()方法从未被触发 以下是我在MainActivity类中的转发过程: private void forwardToQuotesFragment(){ FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace

我想知道,我如何才能弄清楚,为什么我的onAttach方法没有被调用。存在片段事务的提交和相应的替换。我的日志消息和调试步骤告诉我,
QuotesFragment
类的
onAttach()
方法从未被触发

以下是我在MainActivity类中的转发过程:

private void forwardToQuotesFragment(){
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.container, quotesFragment, QuotesFragment.QUOTES_FRAGMENT_TAG);
    ft.commit();
    // onAttach()-method of QuotesFragment is not getting called - why?
}

我发现了问题。正如我在之前的评论中提到的,我的问题的原因是在我的手机上安装了安卓5.0.2,我的应用程序是为安卓6.0以上版本创建的

此外,我还使用了android.app.*-类。现在我将这些类更改为相应的android支持库类。这意味着我的MainActivity扩展自AppCompatActivity,而我的片段则扩展自android.support.v4.app.Fragment。需要稍微更新片段事务过程,如下所示:

private void forwardToQuotesFragment(){
    android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
    android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
    ft.replace(R.id.container, quotesFragment);
    ft.commit();
}

日志中可能有一些错误/警告。检查日志谢谢这个提示Akshay,这是我的控制台的输出。正如您所看到的,这里只提到了一个错误,它被打印在其他信息消息(onCreate)的下面——所以对我来说,所有这些都应该运行正常。D/ViewRootImpl:viewPostimeiInputStage ACTION_DOWN I/QuotesFragment:onCreate()I/QuotesFragment:onCreateView()E/ViewRootImpl:sendUserActionEvent()mView==null V/RenderScript:应用程序请求的CPU执行V/RenderScript:0x93522400启动线程,CPU 8method已弃用,请查看更新的用法。嗨,Karan,您的意思是从onAttach(活动)更改为onAttach(上下文)?如果是,在我的应用程序中,我使用的是当前推荐的版本!我可能找到了问题的根源:我的设备运行在安卓棒棒糖(5.0.2)上。我的应用程序项目专注于安卓6+。onAttach()-params从Android 5更改为6。这种变化可能会导致OnAtach的调用丢失-你怎么看?