我创建了一个名为BaseNavigationActivity
的活动,可以创建NavigationDrawer
。所有其他活动都从此活动延伸。它工作正常,按钮点击打开抽屉。
但是当我进入另一个活动,并回到之前的活动。按钮停止工作。虽然视觉按钮仍然存在,如果我从左侧单击并拖动,它将打开Drawer Layout
当我调试它时,我发现它调用了onRestart()
和onResume()
方法,但没有用这些方法编写的代码。
那么我还需要在那里添加代码吗?或者有没有办法在onClickListner
和onRestart()
活动中实施onResume()
的onCreate()
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout_main);
headerLayout= (FrameLayout) findViewById(R.id.header_layout);
btnOpenDrawer= (Button) findViewById(R.id.btn_openDrawer);
homeLayout= (LinearLayout) findViewById(R.id.home_layout);
btnOpenDrawer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawerLayout.openDrawer(Gravity.LEFT);
}
});
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onRestart() {
super.onRestart();
}
答案 0 :(得分:1)
创建类级别ClickListener,如 onClickListener ,并在任意位置使用它。
// Activate Listener
myView.setOnClickListener(onClickListener);
// DeActivate Listener
myView.setOnClickListener(null);
// Listener
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
}
};
答案 1 :(得分:1)
在我看来,错误是您在onCreate方法中设置了OnClickListener。 OnClickListener仅在您创建活动时设置。切换到第二个活动时,OnClickListener将被覆盖,当您返回第一个活动时,将不会设置OnClickListener,因为第一个活动已经创建,只有onResume将被调用。
尝试将代码从onCreate移动到onResume,这样每次活动回到前面时都会设置监听器。