天天看点

Android应用中返回键的监听及处理

MainActivity如下:

<code>package</code> <code>com.testnbackpressed;</code>

<code>import</code> <code>android.os.Bundle;</code>

<code>import</code> <code>android.view.KeyEvent;</code>

<code>import</code> <code>android.app.Activity;</code>

<code>/**</code>

<code> </code><code>* Demo描述:</code>

<code> </code><code>* 处理Back键按下事件</code>

<code> </code><code>*</code>

<code> </code><code>* 注意事项:</code>

<code> </code><code>* 以下两种方法勿一起使用</code>

<code> </code><code>*/</code>

<code>public</code> <code>class</code> <code>MainActivity </code><code>extends</code> <code>Activity {</code>

<code>   </code> 

<code>    </code><code>@Override</code>

<code>    </code><code>protected</code> <code>void</code> <code>onCreate(Bundle savedInstanceState) {</code>

<code>        </code><code>super</code><code>.onCreate(savedInstanceState);</code>

<code>        </code><code>setContentView(R.layout.main);</code>

<code>    </code><code>}</code>

<code>    </code><code>/**</code>

<code>     </code><code>* 监听Back键按下事件,方法1:</code>

<code>     </code><code>* 注意:</code>

<code>     </code><code>* super.onBackPressed()会自动调用finish()方法,关闭</code>

<code>     </code><code>* 当前Activity.</code>

<code>     </code><code>* 若要屏蔽Back键盘,注释该行代码即可</code>

<code>     </code><code>*/</code>

<code>    </code><code>public</code> <code>void</code> <code>onBackPressed() {</code>

<code>        </code><code>super</code><code>.onBackPressed();</code>

<code>        </code><code>System.out.println(</code><code>"按下了back键   onBackPressed()"</code><code>);       </code>

<code>       </code> 

<code>   </code><code>/**</code>

<code>    </code><code>* 监听Back键按下事件,方法2:</code>

<code>    </code><code>* 注意:</code>

<code>    </code><code>* 返回值表示:是否能完全处理该事件</code>

<code>    </code><code>* 在此处返回false,所以会继续传播该事件.</code>

<code>    </code><code>* 在具体项目中此处的返回值视情况而定.</code>

<code>    </code><code>*/</code>

<code>    </code><code>public</code> <code>boolean</code> <code>onKeyDown(</code><code>int</code> <code>keyCode, KeyEvent event) {</code>

<code>        </code><code>if</code> <code>((keyCode == KeyEvent.KEYCODE_BACK)) {</code>

<code>             </code><code>System.out.println(</code><code>"按下了back键   onKeyDown()"</code><code>); </code>

<code>             </code><code>return</code> <code>false</code><code>;</code>

<code>        </code><code>}</code><code>else</code> <code>{</code>

<code>            </code><code>return</code> <code>super</code><code>.onKeyDown(keyCode, event);</code>

<code>        </code><code>}</code>

<code>           </code> 

<code>    </code><code>protected</code> <code>void</code> <code>onDestroy() {</code>

<code>        </code><code>super</code><code>.onDestroy();</code>

<code>        </code><code>System.out.println(</code><code>"执行 onDestroy()"</code><code>);</code>

<code>    </code><code>}   </code>

<code>}</code>

main.xml如下:

<code>&lt;RelativeLayout </code>

<code>    </code><code>xmlns:android=</code><code>"http://schemas.android.com/apk/res/android"</code>

<code>    </code><code>xmlns:tools=</code><code>"http://schemas.android.com/tools"</code>

<code>    </code><code>android:layout_width=</code><code>"match_parent"</code>

<code>    </code><code>android:layout_height=</code><code>"match_parent"</code>

<code>    </code><code>&gt;</code>

<code>    </code><code>&lt;TextView</code>

<code>        </code><code>android:layout_width=</code><code>"wrap_content"</code>

<code>        </code><code>android:layout_height=</code><code>"wrap_content"</code>

<code>        </code><code>android:text=</code><code>"对于Back键的两种处理方法"</code>

<code>        </code><code>android:layout_centerInParent=</code><code>"true"</code>

<code>        </code><code>android:textSize=</code><code>"20sp"</code>

<code>   </code><code>/&gt;</code>

<code>&lt;/RelativeLayout&gt;</code>

  

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/p/4666872.html   ,如需转载请自行联系原作者

继续阅读