Android应用中Back键的监听及处理实例
程序员文章站
2023-08-12 19:11:55
mainactivity如下: 复制代码 代码如下: package cn.testnbackpressed; import android.os.bundle; impo...
mainactivity如下:
package cn.testnbackpressed;
import android.os.bundle;
import android.view.keyevent;
import android.app.activity;
/**
* demo描述:
* 处理back键按下事件
*
* 注意事项:
* 以下两种方法勿一起使用
*/
public class mainactivity extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
}
/**
* 监听back键按下事件,方法1:
* 注意:
* super.onbackpressed()会自动调用finish()方法,关闭
* 当前activity.
* 若要屏蔽back键盘,注释该行代码即可
*/
@override
public void onbackpressed() {
super.onbackpressed();
system.out.println("按下了back键 onbackpressed()");
}
/**
* 监听back键按下事件,方法2:
* 注意:
* 返回值表示:是否能完全处理该事件
* 在此处返回false,所以会继续传播该事件.
* 在具体项目中此处的返回值视情况而定.
*/
@override
public boolean onkeydown(int keycode, keyevent event) {
if ((keycode == keyevent.keycode_back)) {
system.out.println("按下了back键 onkeydown()");
return false;
}else {
return super.onkeydown(keycode, event);
}
}
@override
protected void ondestroy() {
super.ondestroy();
system.out.println("执行 ondestroy()");
}
}
main.xml如下:
<relativelayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="对于back键的两种处理方法"
android:layout_centerinparent="true"
android:textsize="20sp"
/>
</relativelayout>
复制代码 代码如下:
package cn.testnbackpressed;
import android.os.bundle;
import android.view.keyevent;
import android.app.activity;
/**
* demo描述:
* 处理back键按下事件
*
* 注意事项:
* 以下两种方法勿一起使用
*/
public class mainactivity extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
}
/**
* 监听back键按下事件,方法1:
* 注意:
* super.onbackpressed()会自动调用finish()方法,关闭
* 当前activity.
* 若要屏蔽back键盘,注释该行代码即可
*/
@override
public void onbackpressed() {
super.onbackpressed();
system.out.println("按下了back键 onbackpressed()");
}
/**
* 监听back键按下事件,方法2:
* 注意:
* 返回值表示:是否能完全处理该事件
* 在此处返回false,所以会继续传播该事件.
* 在具体项目中此处的返回值视情况而定.
*/
@override
public boolean onkeydown(int keycode, keyevent event) {
if ((keycode == keyevent.keycode_back)) {
system.out.println("按下了back键 onkeydown()");
return false;
}else {
return super.onkeydown(keycode, event);
}
}
@override
protected void ondestroy() {
super.ondestroy();
system.out.println("执行 ondestroy()");
}
}
main.xml如下:
复制代码 代码如下:
<relativelayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="对于back键的两种处理方法"
android:layout_centerinparent="true"
android:textsize="20sp"
/>
</relativelayout>