我已经建了一个导航抽屉。一旦应用程序启动,我将指导用户来自" MainActivity"通过以下代码内部的#34; MainActivity"来实现MainMenuActivity:
Intent Activity = new Intent(MainActivity.this, MainMenuActivity.class);
startActivity(Activity);
但是当应用程序启动时,它会直接崩溃:logcat:
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {package.allineed/Package.MainMenuActivity}; have you declared this activity in your AndroidManifest.xml?
我在AndroidManifest.xml中声明了MainMenuActivity,向应用程序添加了以下代码:
<activity android:name=".MainMenuActivity"></activity>
但应用程序崩溃并给了我以下logcat:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{aloweiwi.anas.allineed/aloweiwi.anas.allineed.MainMenuActivity}: java.lang.ClassCastException: aloweiwi.anas.allineed.MainMenuActivity cannot be cast to android.app.Activity
这是MainMenuActivity:
public class MainMenuActivity extends Fragment{
View myView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView=inflater.inflate(R.layout.activity_main_menu,container,false);
return myView;
}
}
我花了很多时间,很可能它会被解决?
答案 0 :(得分:0)
试试这个 -
public class MainMenuActivity extends FragmentActivity
您可以查看this了解详情。
您必须将片段嵌入到现有活动中,您永远不能直接在片段类上调用startActivity()
答案 1 :(得分:0)
首先MainMenuActivity
是Fragment
而不是Activity
。因此,不应在Manifest.xml
中声明为Activity
。
并且您无法使用Intent直接调用Fragment
。
通过使用FragmentManager
和FragmentTransaction
,您可以将片段加载到活动中。
只需查看关于如何在活动中使用片段的链接?
http://android-er.blogspot.in/2011/12/programmatically-add-fragment.html
答案 2 :(得分:0)
如果你想要一个NavigationDrawer,那么你应该看到main_activity.xml如下所示
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<FrameLayout android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start" />
</android.support.v4.widget.DrawerLayout>
然后您可以通过
在MainActivity中设置导航Fragment fragment = new MainMenuActivity();
// Insert the fragment by replacing any existing fragment
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.left_drawer, fragment)
.commit();
FrameLayout
是持有者,您可以在运行时填充任何布局。
DrawerLayout
中的最后一项用于导航。使用android:layout_gravity
,您可以说,您想要导航的位置。