Как отключить EditText и сохранить цвет фона белым? - PullRequest
1 голос
/ 20 февраля 2012

Когда я отключаю EditText с помощью setEnabled(false) или с помощью XML-файла android:enabled="false", цвет фона будет серым:

enter image description here

и если я изменю фон сбелый цвет android:background="@color/white", я потеряю границу:

enter image description here

Итак, мой вопрос, как отключить EditText (я не хочу, чтобы какой-либо диалог всплывалпри длительном нажатии на него) и сохранить границу как есть?

Ответы [ 3 ]

3 голосов
/ 20 февраля 2012

Лучше всего было бы создать собственный список списков состояний и указать, что отключенный фон будет таким же, как и включенный.Вам потребуется создать собственное изображение 9-Patch, или вы также можете извлечь файлы ресурсов из Android Open Source.

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

Вот пример, который я использую для моего EditTextфоны:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  Active tab -->
    <item android:state_focused="true"
          android:drawable="@drawable/edittext_bg_selected" />
    <!--  Inactive tab -->
    <item android:state_focused="false"
          android:drawable="@drawable/edittext_bg_unselected" />

    <item android:state_enabled="false"
          android:drawable="@drawable/edittext_bg_unselected" />

    <!-- Add all of your other states -->
</selector>

Вам просто нужно возиться с различными состояниями, чтобы создать то, что работает для вас.

1 голос
/ 20 февраля 2012

Я нашел способ сделать это:

android:editable="false"
android:cursorVisible="false"
editText.setOnTouchListener(new View.OnTouchListener()
{
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        return true;
    }
});
0 голосов
/ 20 февраля 2012

Попробуйте использовать TextView вместо android:background="#FFFFFF".

Вы также можете попробовать android:focusable="false".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...