Android 軟鍵盤按鍵監控
阿新 • • 發佈:2018-12-30
最近在做專案,遇到一個比較頭疼的問題,問題是需要對使用者的輸入進行時時監聽,而大部分使用者的輸入是通過軟鍵盤來完成的,而Android平臺好象沒有專門的對此監控事件,那該怎麼辦呢?
最終解決辦法就是通過EditText和TextWatcher類來輔助監聽。具體做法如下:
private class TextMonitor implements TextWatcher{ @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {//輸入前的內容 String str_forward=s.toString().length(); } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { //正在輸入的內容 String str=s.toString().substring(start); tv.setText("您已經編輯的內容:"+s.toString()); if(str.contains("\n")){//回車鍵 } } @Override public void afterTextChanged(Editable s) {//輸入後的內容 String str_last=s.toString().length(); } }
相應控制元件:
private TextView tv;
private EditText edit;
tv=(TextView)findViewById(R.id.showInput);
edit=(EditText)findViewById(R.id.InputContent);
edit.addTextChangedListener(new TextMonitor());
佈局檔案:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/showInput" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="顯示您的編輯內容" /> <EditText android:id="@+id/InputContent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="輸入編輯內容" /> </LinearLayout>
目前好像還沒有其他的好辦法,只能這樣間接監控,歡迎大家能提出更好的解決辦法。