2014-03-26 149 views
0

我创建了自己的导航抽屉活动。一切工作正常,但我想扩展到其他活动。 https://github.com/lupajz/bc/blob/master/app/src/com/kulturnepodujatia/DashboardActivity.java这里是我的导航抽屉活动。扩展导航抽屉活动

如果我尝试打开另一个类似的活动,例如:

public class Test extends DashboardActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.test, menu); 
    return true; 
} 
} 

我得到的错误:

03-26 12:14:07.902: E/AndroidRuntime(19266): FATAL EXCEPTION: main 
03-26 12:14:07.902: E/AndroidRuntime(19266): Process: com.kulturnepodujatia, PID: 19266 
03-26 12:14:07.902: E/AndroidRuntime(19266): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kulturnepodujatia/com.kulturnepodujatia.Test}: java.lang.IllegalArgumentException: No view found for id 0x7f07000b (com.kulturnepodujatia:id/frame_container) for fragment BaseFragment{64ababa0 #0 id=0x7f07000b} 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.ActivityThread.access$800(ActivityThread.java:145) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.os.Handler.dispatchMessage(Handler.java:102) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.os.Looper.loop(Looper.java:136) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.ActivityThread.main(ActivityThread.java:5081) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at java.lang.reflect.Method.invoke(Native Method) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
03-26 12:14:07.902: E/AndroidRuntime(19266): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f07000b (com.kulturnepodujatia:id/frame_container) for fragment BaseFragment{64ababa0 #0 id=0x7f07000b} 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:882) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.BackStackRecord.run(BackStackRecord.java:684) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.Activity.performStart(Activity.java:5240) 
03-26 12:14:07.902: E/AndroidRuntime(19266): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2178) 

测试acitivty刚刚在布局的textivew。导航抽屉活动有这样的布局:

<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" 
    android:theme="@android:style/Theme.Holo.Light"> 

    <!-- Framelayout pre zobrazovanie jednotlivých fragmentov --> 
    <FrameLayout 
     android:id="@+id/frame_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <!-- Listview ako menu pre navDrawer --> 
    <ListView 
     android:id="@+id/list_slidermenu" 
     android:layout_width="240dp" 
     android:layout_height="fill_parent" 
     android:layout_gravity="start" 

     android:dividerHeight="0dp" 
     android:divider="@null" 
     android:background="#2B2B2B" 

     /> 
</android.support.v4.widget.DrawerLayout> 
+0

按照该教程http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/ –

回答

0

就不得不提到这样

public class Test extends DashboardActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.test, menu); 
    return super.onCreateOptionMenu(Menu menu); 
} 
} 

如果你给onCreateOptionsMenu(菜单菜单)上的仪表盘。你永远不必提过 这里... 。

继一个U已经透露了一些内幕清单..

<activity 
       android:name=".Test" 
       android:configChanges="keyboardHidden|screenSize|orientation" 
       > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 
0

删除测试活动中的setContentView。您已经在具有R.id.frame_container的Drawer Activity中设置了contentview。所以当你重写onCreate时,你将使用不同的布局设置内容视图,当选择Drawer itemb时,它会失败,因为你试图在R.id.frame_container中添加片段。

+0

好吧:)这是有益的,现在我有问题。我可以在测试活动中修改此布局吗?像删除切换,只需在那里放回按钮? –

+0

当然你可以修改。如果您不覆盖新视图,则您可以完全控制该视图。 – Libin

+0

好吧,我明白了。我的问题是如何访问另一个活动的第一个活动的ActionBarDrawerToggle? –