Android 代码用来返回上一个activity 调用onKeyDown()时发生java.lang.NullPointerException.

很多人想从一个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));			}
		});
虽说无空指针错误,但是没任何效果。我也不解,望知情的兄弟告知一声哈!
 

你可能感兴趣的:(android,null)