gpt4 book ai didi

java - fragment 类在 Intent 的 startactivity 方法中显示错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:34 25 4
gpt4 key购买 nike

-30 12:14:06.020 24369-24369/com.sourcey.materialloginexample E/AndroidRuntime: FATAL EXCEPTION: main Process: com.sourcey.materialloginexample, PID: 24369 android.content.ActivityNotFoundException: Unable to find explicit activity class {com.sourcey.materialloginexample/com.surbhi.oopscourier.activities.TwoFragment}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1788) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) at android.app.Activity.startActivityForResult(Activity.java:3810) at android.app.Activity.startActivityForResult(Activity.java:3761) at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:813) at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:871) at android.support.v4.app.Fragment.startActivity(Fragment.java:916) at com.surbhi.oopscourier.activities.OneFragment$1.onClick(OneFragment.java:26) at android.view.View.performClick(View.java:4848) at android.view.View$PerformClick.run(View.java:20262) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5637) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

public class OneFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
Button next=(Button)view.findViewById(R.id.nextonefrag);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i=new Intent(getActivity(),TwoFragment.class);
startActivity(i);
}
});
return view;
}
}

xml:

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="#ffffff"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:background="@drawable/cell"
android:layout_marginTop="150dp"
android:orientation="vertical">


<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:background="@color/colorPrimary"
android:id="@+id/spinner" />

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Wait and Return"
android:textColor="#000000"
android:id="@+id/checkBox" />

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Express"
android:textColor="#000000"
android:id="@+id/checkBox2" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:layout_marginBottom="10dp"
android:background="@color/colorPrimary"
android:id="@+id/nextonefrag"
android:layout_marginRight="20dp"
android:layout_gravity="right" />
</LinearLayout>
</RelativeLayout>

当我单击 fragment 内的按钮时,应用程序不幸停止了。并且在启动 Activity 方法中显示错误,指示在 list 文件中声明 fragment Activity 。我尝试在 list 文件中声明 fragment Activity ,但无法在那里声明。

最佳答案

如果您的 TwoFragment.java 扩展了 Fragment 并且您已动态添加 fragment ,则可以将以前的 fragment 替换为 Fragment TwoFragment,如下所示:

Fragment fragment = new TwoFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commit();

Activity 和 Fragment 是两个不同的东西:

Activity 是一个提供屏幕的应用程序组件,用户可以与该屏幕进行交互以执行某些操作。更多详情:http://developer.android.com/guide/components/activities.html

而 Fragment 代表 Activity 中的行为或用户界面的一部分。您可以在单个 Activity 中组合多个 fragment 来构建多 Pane UI 并在多个 Activity 中重用 fragment 。您可以将 fragment 视为 Activity 的模块化部分,它具有自己的生命周期,接收自己的输入事件,并且可以在 Activity 运行时添加或删除它(有点像可以在不同 Activity 中重用的“子 Activity ”)。 fragment 必须始终嵌入到 Activity 中,并且 fragment 的生命周期直接受宿主 Activity 的生命周期影响。 http://developer.android.com/guide/components/fragments.html

关于java - fragment 类在 Intent 的 startactivity 方法中显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com