【发布时间】:2013-11-21 07:49:25
【问题描述】:
我在定义为
的主要活动中使用导航抽屉private DrawerLayout drawerlayout;
我在主要活动中使用它来打开和关闭我的导航片段,但是导航片段类中有 3 个特定按钮,我想在其中使用导航片段功能drawerlayout.closedrawer(r.id.drawer)
但是每次我在导航片段类中再次定义它并尝试将其添加到这些按钮的 onclick 中时,单击按钮时,应用程序会因空指针异常而崩溃。我该怎么做?
谢谢! 这是我的应用程序中的示例代码: 公共类 navfragment 扩展片段 {
public interface OnCloseDrawerListener
{
void onCloseDrawer();
}
@Override
public void onClick(final View v) {
switch (v.getId()) {
case R.id.button_logout:
final DialogFragment dialog = new LogoutCancelSignoutDialogFragment(mLogoutListener);
dialog.show(getActivity().getSupportFragmentManager(), AbsBaseaActivity.TAG_LOGOUT_DIALOG);
BangoHelper.eventLogout();
((OnCloseDrawerListener)getActivity()).onCloseDrawer();
break;
}
}
在我的课堂 MainActivity:
public class MainActivity extends AbsBaseaActivity implements OnBackStackChangedListener {
private DrawerLayout drawerLayout;
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
//----------Code for Navigation Drawer setup
// 2. App Icon
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
// 2.1 create ActionBarDrawerToggle
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
R.drawable.arrow_up, R.string.drawer_open, R.string.drawer_close){
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
// getActionBar().setTitle(NavigationPanelFragment.activeFragmentTitle);
// invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
// getActionBar().setTitle(NavigationPanelFragment.activeFragmentTitle);
// invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
// 2.2 Set actionBarDrawerToggle as the DrawerListener
drawerLayout.setDrawerListener(actionBarDrawerToggle);
}
public void onCloseDrawer()
{
drawerLayout.closeDrawer(R.id.drawer);
}
Even after modifying the code as per the given suggestion it crashes when I click on the button defined onclick for the fragment class, any clue?
【问题讨论】:
-
展示一些代码如何从 Fragment 访问 Drawer。
-
你需要从fragment回调activity并访问那里的drawerLayout
-
添加了代码,各位大佬看看有什么线索吗?
标签: android android-layout android-fragments android-navigation