2013-08-30 4 views
0

Мне нужно, чтобы EditText отображался как TextView для формы, которая будет меняться от записи только для чтения. Я нашел полезный фрагмент кода, чтобы сделать это в макете:Настройка @null для textColor динамически в android

<EditText android:id="@+id/title" 
      android:layout_width="fill_parent" 
      style="?android:attr/textViewStyle" 
      android:background="@null" 
      android:textColor="@null" /> 

мне нужно сделать это динамически (не в макете). Я знаю, что фон может быть установлен на @null с помощью setBackgroundResource(null). Потому что setTextColor(int color) принимает int, я предполагаю, что необходимо выбрать определенный цвет. Каков правильный цвет, который будет эквивалентен @null? Цвет от темы по умолчанию? Или есть лучший способ сделать это?

+0

Что вы получаете, если используете 'getTextColors()' с тем, что установлено в '@ null' в XML? Это должно сказать вам, какие цвета используются для каждого состояния, когда оно равно null. – Geobits

+0

Когда я вызываю 'getTextColors(), getDefaultColor()' возвращает -4276546 ('# FFBEBEBE'), который является светло-серым. Если я вообще не устанавливаю 'textColor', я получаю -16777216 (' # FF000000') черный. Это также говорит о том, что используется цвет темы по умолчанию и что '@ null' не означает прозрачный или черный. – Macadameane

ответ

0

Вы можете создать цвет в вашем string.xml как

<color name="transparent">#00000000</color> 

Затем вы можете присвоить ему нравится

txtTitle.setTextColor(getResources().getColor(R.color.transparent));  

#00000000 равна нулю.

+0

Спасибо, но это устанавливает цвет в 0 (то же, что и 'Color.TRANSPARENT'). Это делает текст невидимым. Я не думаю, что '@ null' имеет такое же влияние на цвет текста, как прозрачное значение. – Macadameane

+0

, но ваш вопрос: 'Установка @null для textColor динамически в android. @ Нуль = # 00000000. –

+0

Как проверено и показано в комментариях выше, '@ null' не равно' # 00000000' – Macadameane

0

Вы можете вызвать эти методы на любом View, чтобы отключить редактирование или щелчок. Он будет эффективно читать только чтение. Установите их на true, чтобы повторно включить их.

view.setFocusable(false); 
view.setClickable(false); 
view.setLongClickable(false); 
+0

Спасибо, я уже это делаю. Мое намерение в этом вопросе состоит в том, чтобы сделать «EditText» неподходящим для пользователя (т. Е. Не выглядеть как «EditText», но больше похоже на «TextView».) – Macadameane

+0

Вы можете поменять «EditText» на «TextView» на в то же время вы делаете это только для чтения. –

+0

Да, я это рассмотрел. Я думаю, что мне просто нужно ввести значение цвета в конечный результат. Остальная часть работы отлично удаляет фон, просто не может пригвоздить цвет. Я нашел цвет '# FFBEBEBE' в sdk как« вторичный цвет текста »или что-то в этом роде. – Macadameane

Смежные вопросы