7

テキストビューのある画面があり、これをクリックして編集可能にしたい

edittextを使用して透明な背景にする1つのソリューションを試しましたが、最初はカーソルが表示され、クリックが正しく認識されません。xmlでfocusbaleintouchmodeをfalseに設定すると、フォーカスが得られません。 .まず、これは正しいアプローチですか?

期待される結果は、ユーザーがクリックするとテキストビューがそこにあるはずであり、ユーザーがその外側をクリックすると編集可能になるはずです。サンプルコードはどれも私を大いに助けてくれます.私の英語のために申し訳ありません

前もって感謝します

最後に、xml編集テキストで以下のコードを使用して1つの解決策を得ました。foucasbletouchmodeをfalseに設定すると、その後onclickでクリックが正しく機能します

        et.setFocusable(true);
        et.setEnabled(true);

        et.setFocusableInTouchMode(true);
        et.requestFocus();

集中力を失う

        et.setFocusable(false);
        et.setClickable(true);
        et.clearFocus();
4

1 に答える 1

4

以下のコードを使用できます。

private makeEditable(boolean isEditable,EditText et){
    if(isEditable){
        et.setBackgroundDrawable("Give the textbox background here");//You can store it in some variable and use it over here while making non editable.
        et.setFocusable(true);
        et.setEnabled(true);
        et.setClickable(true);
        et.setFocusableInTouchMode(true);
        et.setKeyListener("Set edit text key listener here"); //You can store it in some variable and use it over here while making non editable.
    }else{
        et.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
        et.setFocusable(false);
        et.setClickable(false);
        et.setFocusableInTouchMode(false);
        et.setEnabled(false);
        et.setKeyListener(null);
    }
}
于 2012-11-16T06:23:24.857 に答える