Android EditText用法大全

3338 ワード

EditTextはAndroidの基本コントロールの一つで、使用頻度が非常に高い.
よくある使用上の問題は次のとおりです.
1.EditTextを編集できないようにするにはどうすればいいですか?
これは、トップページの検索ボックスによく見られます.検索ボックスをクリックしてから本当に検索ページにジャンプしますが、このときの検索ボックスは入力できません.
方法:レイアウトでfocusAbleをfalseに設定します.次のようになります.
	

2.ページに入るときにキーボードを自動的にイジェクトしない方法
EditText付きのページレイアウトでは、デフォルトでEditTextにページフォーカスを取得させ、ページに入ると自動的にキーボードがポップアップされます.
方法:レイアウトのEditTextに焦点を失わせるには、親ノードが積極的に焦点を得るなど、他のViewに焦点を強制的に割り当てるのが一般的です.
つまり、親ノードのプロパティに2つの文を追加します.
android:focusable="true"
android:focusableInTouchMode="true"

次のようになります.


	
	......


3.ページに入るときにキーボードを自動的にイジェクトするにはどうすればいいですか?
通常、ページ内にEditTextがあれば、ページに入るとキーボードが自動的にポップアップします.しかし、それが異常になったとき、弾けなかったらどうしますか?方法もある.
方法:手動で表示および非表示にします.
たとえば、ページのonCreateメソッドで、あるviewのpostメソッドでInputMethodManagerを呼び出すメソッドを遅延させ、ページにキーボードをポップアップさせます.
if (ll_content_root.getVisibility() == View.VISIBLE) {
            ll_content_root.postDelayed(new Runnable() {
                @Override
                public void run() {
                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
                }
            }, 500);
        }

ここでは、主に次の属性があります.
3.1. imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); キーボードがウィンドウに表示されている場合は非表示になり、逆に表示されます.
3.2.強制表示または非表示:
private void handleKeyboard(boolean isShow) {
        InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (!isShow) {
            if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {
                if (getCurrentFocus() != null)
                    manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);

            }
        } else {
            if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) {
                if (getCurrentFocus() != null)
                    manager.showSoftInput(et_note, InputMethodManager.HIDE_NOT_ALWAYS);
            }
        }
    }
4.EditTextのクリックイベントについて.
EditTextのクリックイベントを埋め込み統計する場合があります.編集可能なEditTextの場合、最初のクリックでEditTextがフォーカスされ、フォーカスを取得した後のクリックでsetOnClickListenerのコールバックが呼び出されます.この場合、setOnTouchListenerを使用して統計をとることをお勧めします.