很多人想从一个Activity返回到上一级Activity时,考虑通过在点击事件里调用OnKeyDown事件来返回上一级,如下:
toolbarBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
OnKeyDown(KeyEvent.KEYCODE_BACK,null); }
});
会发现报空指针错误,具体原因看下源码,你没传入的参数(即null)在OnKeyDown方法中使用到了,所以空指针。
其实返回上一级,不用考虑如此复杂,我们可以使用如下:直接结束当前Activity不就行了。
toolbarBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ReaderActivity.this.finish();
}
});
注意:
要在第一个activity向第二个activity跳转的时候将第一个activity finish(),这样在第二个activity返回第一个activity时,就会执行第一个activity的onCreate()方法。
toolbarBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
OnKeyDown(KeyEvent.KEYCODE_BACK,new KeyEvent(KeyEvent.KEYCODE_BACK,KeyEvent.ACTION_DOWN)); }
});
虽说无空指针错误,但是没任何效果。我也不解,望知情的兄弟告知一声哈!