当前位置: 首页 > 知识库问答 >
问题:

Android应用崩溃每隔一秒,当我从活动调用片段?

秦俊友
2023-03-14

我已经创建了一个简单的主片段页面,其中有一个按钮调用activity类布局,当到达activity类时,该activity类会在单击按钮时回调片段类布局。下面是一个简单的片段类,带有一个调用activity类的简单按钮,它可以正常工作。但一旦打开Acitiviy页面,单击按钮返回片段布局,我每单击一次按钮,应用程序就会崩溃。任何帮助都将不胜感激。

以下错误

JAVAlang.IllegalArgumentException:在androidx上找不到id为0x7f0b007d(org.pjsip.pjsua2:id/container01)的片段登录名{1bd38c1(5a612956-fc18-4272-8230-f79e71fed06a)id=0x7f0b007d}的视图。碎片应用程序。碎片管理器。androidx上的moveToState(FragmentManagerImpl.java:875)。碎片应用程序。碎片管理器。将FragmentToExpectedState(FragmentManagerImpl.java:1238)移动到androidx。碎片应用程序。碎片管理器。androidx上的moveToState(FragmentManagerImpl.java:1303)。碎片应用程序。背靠背记录。androidx上的executeOps(backbackRecord.java:439)。碎片应用程序。碎片管理器。androidx上的executeOps(FragmentManagerImpl.java:2079)。碎片应用程序。碎片管理器。在androidx上执行executepstogether(FragmentManagerImpl.java:1869)。碎片应用程序。碎片管理器。在androidx上删除和停止操作并执行(FragmentManagerImpl.java:1824)。碎片应用程序。碎片管理器。在androidx上执行PendingActions(FragmentManagerImpl.java:1727)。碎片应用程序。FragmentManagerImpl$2。在android上运行(FragmentManagerImpl.java:150)。操作系统。处理程序。android上的handleCallback(Handler.java:883)。操作系统。处理程序。android上的dispatchMessage(Handler.java:100)。操作系统。活套。android上的loop(Looper.java:237)。应用程序。活动线程。java上的main(ActivityThread.java:8107)。朗。反思。方法在com上调用(本机方法)。Android内部的操作系统。RuntimeInit$MethodAndArgsCaller。在com上运行(RuntimeInit.java:496)。Android内部的操作系统。合子体。main(ZygoteInit.java:1100)

public class fragment_login extends Fragment  {

    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;
    public int Register=0;


    public fragment_login() {
        // Required empty public constructor
    }

  
    // TODO: Rename and change types and number of parameters
    public static fragment_login newInstance(String param1, String param2) {
        fragment_login fragment = new fragment_login();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_login, container, false);
        send = v.findViewById(R.id.btn_login);
        return v;

    }


    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {

    send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), MainActivity3.class);
                startActivity(intent);
            // i am calling Mainactivity3 class here ,which takes me to activity layout and it works 
            }
        });
    }

//下面是activity类,它在单击fragment类中的按钮时被调用,在这里我试图调用fragment类,但每当我单击此按钮时,它就会崩溃。

public class MainActivity3 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        Button send = (Button)findViewById(R.id.btn_register);


        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

//下面的代码返回到fragment layout,在重新加载应用程序后只运行一次,并且每当我单击此按钮时,它都会崩溃。

      getSupportFragmentManager().beginTransaction().add(R.id.container01,new fragment_login()).commit();


            }
        });

共有1个答案

禄烨然
2023-03-14

在MainActivity XML中定义Id“container01”,将片段添加到容器中。

主活动XML

<!--Container for Fragments-->
        <FrameLayout
            android:id="@+id/contFragments"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_centerHorizontal="true"
            android:layout_weight="1"
            android:visibility="visible" />
 类似资料:
  • 我目前正试图在android studio中创建一个日历应用程序。该应用包含一个具有不同“视图”的日历,例如月视图、周视图和日视图。 该应用程序使用片段作为页面,每个视图都是一个活动。 这是片段和按钮初始化每个视图的代码 在代码中显示日历月度视图的第一个按钮称为“Calendaractive”正常工作,但当单击显示日历每周视图的第二个按钮时,会导致应用程序崩溃并在logcat中给出以下错误 我不确

  • 这是主要活动XML 这是片段活动XML 这是主活动Java文件 这是片段Java文件 我收到的logcat消息说: java.lang.RuntimeException:无法启动活动ComponentInfo{com.csdelta.haroon.fragmentpractice/com.csdelta.haroon.fragmentpractice.MainActivity}:android.v

  • 我是新的Android Studio。我想开始一个新的活动时,一个按钮被点击,我的应用程序不断停止。 这是我的代码:这是第一个活动(我有所有的导入) 第二类: 清单文件: 这是按钮: 从MainActivity到dispozive的转换很好。我不明白这两个为什么不起作用。谢谢你的帮助!新年快乐!(如果您今天看到:)) logcat:

  • 我有一个问题,我的活动正在进行一个网络调用,当网络调用完成时,它使用从调用中收到的JSON对象的数据对活动进行了一些更改,然后将对象传递给同一活动中的片段。这些碎片在一个台面上。 我有同样的问题,我在这里问了这个问题,但我似乎也有同样的问题,即使在没有改变任何重要的东西后,它有了一点作用。我只是添加了更多我想要更改的字段? 我遇到的问题是,如果我使用system.out.println(),它会打

  • fragment类主活动/主活动如何限制我的主活动在从片段的最后一页返回到主活动时不返回到片段的最后一页,就像我有一个主活动,单击按钮该主活动会导致另外3个活动,其中一个活动有片段。片段的最后一页指向home activity,但当我在home activity上后退时,它再次将我引导到片段的最后一页,然后我再次按下back按钮,然后我的应用程序关闭

  • 当我在设备上运行应用程序时单击增量按钮时,我的应用程序意外地强制执行这是我的activity_main.xml代码 这是我的mainactivity.java文件 这是调试报告05-23 22:14:45.695 297 36-29736/com.orton.birthdayCard E/AndroidRuntime:致命异常:主进程:com.orton.birthdayCard,PID:2973