1. ホーム
  2. android

[解決済み] 編集不可のEditTextの中に定数テキストを入れる - Android

2023-08-04 02:02:18

質問

editTextの中に、以下のような定数テキストを入れたい。

http://<here_user_can_write>

ユーザは " から文字を削除できないようにする。 http:// を削除できないようにする必要があります。

editText.setFilters(new InputFilter[] {
    new InputFilter() {
        public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend) {
            return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
        }
    }
}); 

から文字列を削除しないように制限しているかどうかはわかりません。 から終了まで を制限しているのかどうか。また、Spannedクラスの使い方もよくわかりませんでした。

一つの方法としては TextView の中に EditText というのがありますが、Androidでは両方ともViewなので無理だと思うのですが、可能でしょうか?

どのように解決するのですか?

この方法を試されましたか?

final EditText edt = (EditText) findViewById(R.id.editText1);

edt.setText("http://");
Selection.setSelection(edt.getText(), edt.getText().length());


edt.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            if(!s.toString().startsWith("http://")){
                edt.setText("http://");
                Selection.setSelection(edt.getText(), edt.getText().length());

            }

        }
    });