这几天在做Android 关于keyevent方面的代码的开发,现在记录一下,以备不时之需。
要求
将原来通过Touch触发的SwitchButton的切换事件的代码,移植到不支持触摸的andorid系统上。所以需要进行从TouchEvent变成KeyEvent。为了尽可能的少改动原来的代码,所以通过在原有的UI框架内加一个自定义Layout 的方法来添加焦点事件。
焦点移动流程:
1.在想要获得焦点的控件上添加属性focusable=“true”,并设置好上一个焦点和下一个焦点,nextFocusUp和nextFocusDown,属性值为控件的Id
<FocusFrameLayout
android:id="@+id/focus_apr_setting_layout"
app:enter_response="@+id/apr_setting_switch"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/strokecolor_focus"
android:focusable="true"
android:nextFocusUp="@+id/focus_recovery_log_enable_layout"
android:nextFocusDown="@+id/focus_upload_crash_info_layout">
2.在Activity中实例化一个焦点控件,并吧页面的第一个焦点给它
focusAprSettinLayout.requestFocus();
3.在通过cmd键入
adb shell i