gpt4 book ai didi

java - 如何从抽屉导航的 fragment 启动 Activity

转载 作者:行者123 更新时间:2023-12-02 03:06:28 24 4
gpt4 key购买 nike

我建立了一个抽屉导航。当应用程序启动时,我将用户直接从 MainActivity 定向到“MainMenuActivity” Activity 。在“MainMenuActivity”内部,有一个按钮应该将用户引导到另一个 Activity “Order List”;我应用了两个代码部分,但没有起作用:

第一个代码:

public class MainMenuActivity extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_mainmenu, container, false);

Button Orderlistbtn = (Button) rootView.findViewById(R.id.orderlistbtn);
Orderlistbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainMenuActivity.this, OrderList.class);
startActivity(intent);
}
});

return rootView;
}
}

应用程序无法运行,第一个代码在 logcat 中给出以下错误:

  Error:(41, 33) error: no suitable constructor found for Intent(MainMenuActivity,Class<OrderList>)
constructor Intent.Intent(String,Uri) is not applicable
(argument mismatch; MainMenuActivity cannot be converted to String)
constructor Intent.Intent(Context,Class<?>) is not applicable
(argument mismatch; MainMenuActivity cannot be converted to Context)

第二个代码:

public class MainMenuActivity extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_mainmenu, container, false);

Button Orderlistbtn = (Button) rootView.findViewById(R.id.orderlistbtn);
Orderlistbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), OrderList.class);
startActivity(intent);
}
});

return rootView;
}
}

但是应用程序一旦启动就会崩溃,并出现以下 logcat 错误

 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{package/package.MainMenuActivity}: java.lang.ClassCastException: package.MainMenuActivity cannot be cast to android.app.Activity

这是“activity_mainmenu.xml”文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@android:color/background_light">


<Button
android:background="#ffff8800"
android:textColor="@android:color/white"

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" My order list "
android:id="@+id/orderlistbtn"

android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
/>


</RelativeLayout>

最佳答案

<强> getActivity() 在 Fragment 中返回该 Fragment 当前关联的 Activity。

 Intent intent = new Intent(getActivity(), OrderList.class);
startActivity(intent);

编辑

其次,您将获得 ClassCastException

Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance.

关于java - 如何从抽屉导航的 fragment 启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647862/

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