Я построил ящик для навигации. Когда приложение запускается, я направляю пользователя непосредственно в «MainMenuActivity» активность из MainActivity. Внутри «MainMenuActivity» есть кнопка, которая должна направить пользователя на другую деятельность, которая является «списком заказов»; Я применил два части кода, но не работает:как запустить активность из фрагмента навигационного ящика
Первый код:
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()' вместо 'MainMenuActivity.this' –
@Aloweiwi ПОКАЗАТЬ СВОЮ XML' 'activity_mainmenu' –
MainMenuActivity' не является «активностью», но где-то вы рассматриваете его как таковой. Если «Я направляю пользователя непосредственно к« MainMenuActivity »активности из MainActivity.», Вы имеете в виду, что вы вызываете «startActivity()» с таргетингом «Intent» MainMenuActivity, то это ваша проблема. –