微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从Android中的活动调用片段?

我正在处理 Android片段.在我的应用程序中,我遇到一个活动和片段的问题.即我在fragment1中创建了一个按钮,并在该按钮单击中称为activity1.再次在activity1中,我创建了另一个按钮,称为activity2.
现在从activity2我调用activity1,从activity1我试图调用fragment1.但是在id上显示错误(任何人都可以告诉我我们需要给哪个id).我在google上研究如何从活动中调用片段,但是我没有找到任何解决方案.请帮我解决这个问题.提前致谢.

我的代码

Activity1.class

public void back(View v) {

 MyFragment1 fragmentS1 = new MyFragment1();
 getFragmentManager().beginTransaction().replace(android.R.id.frame_container,fragmentS1).commit();

}

Logcat Error:

04-10 10:55:28.876: E/AndroidRuntime(22103): FATAL EXCEPTION: main
04-10 10:55:28.876: E/AndroidRuntime(22103): java.lang.IllegalArgumentException: No view found for id 0x7f0a0004 (com.vizteck.navigationdrawer:id/frame_container) for fragment Fragment1{429cba90 #0 id=0x7f0a0004}
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:895)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:1075)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.app.BackStackRecord.run(BackStackRecord.java:682)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1455)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.os.Handler.handleCallback(Handler.java:725)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.os.Looper.loop(Looper.java:137)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at android.app.ActivityThread.main(ActivityThread.java:5283)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at java.lang.reflect.Method.invokeNative(Native Method)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at java.lang.reflect.Method.invoke(Method.java:511)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
04-10 10:55:28.876: E/AndroidRuntime(22103):    at dalvik.system.NativeStart.main(Native Method)

解决方法

尝试这个..

从这个android.R.id.frame_container中删除android

如果你正在使用activity1扩展Activity使用getFragmentManager()或者如果你正在使用activity1扩展FragmentActivity使用getSupportFragmentManager().

如下

MyFragment1 fragmentS1 = new MyFragment1();
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container,fragmentS1).commit();

原文地址:https://www.jb51.cc/android/313346.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐