2012-05-14 2 views
69

Мне нужно уметь помещать «-» в строку внутри моего файла strings.xml.Как поместить файл «-» в файл string.xml

Моя проблема заключается в том, что, когда я помещаю свою строку, которая является "1261eba2-9d8c-11e1-93e3-40409e0f44a1", затмение орет:

Несколько аннотаций нашли в этой строке: - Replace «-» с «тире» характер (-, &; # 8211;)

Как я могу это исправить?

+1

где именно вам нужно это значение? Является ли это тегом, значением тега или значением атрибута? – rekaszeru

+0

Показать тег – Bhavin

+0

Lint cryptic charm – auval

ответ

102

Итак, прочитав сообщение об ошибке, ответ будет , вы должны заменить - на –. Затем он должен работать нормально =)

http://en.wikipedia.org/wiki/Dash

+2

Это нормально, когда вы просто хотите отобразить строку пользователю. Пользователь не может сказать, что вы «обманываете» с похожим видом юникодного символа. Если вы просто хотите использовать обычную тире, посмотрите этот ответ: http://stackoverflow.com/a/10895509/78234 –

+1

Я думаю, что этот код предназначен для endash, а не для обычного дефиса. – John61590

14

б/у (\) перед каждым особым символом. как я \ & android.

Это символ escape-символа. (\)

+0

Я думаю, вы имеете в виду добавить escape-символ: "\" перед каждым специальным символом. – drew212

+0

http://en.wikipedia.org/wiki/Escape_character escape-символ - обратная косая черта - «\», а не косая черта - «/» – drew212

+0

@ drew212, его ошибка, спасибо за исправление меня .. –

1

Вы, вероятно, это:

<string name="test1">1261eba2-9d8c-11e1-93e3-40409e0f44a1</string> 

Но вы должны либо один из них:

<string name="test2">1261eba2&#8211;9d8c&#8211;11e1&#8211;93e3&#8211;40409e0f44a1</string> 
<string name="test3">1261eba2–9d8c–11e1–93e3–40409e0f44a1</string> 

Во втором по - это заменен на. Трудно сказать разницу визуально.

+1

Будьте осторожны: если вы измените эти символы в URL-адресе, он может перестать работать (мой сделал). –

+0

Я хочу заменить короткий символ штриховки (n-тире) на экранированную последовательность. Но '–' выглядит как escape-последовательность для символа длинной строки (m-dash). – toobsco42

75

Другие ответы в порядке, если вы хотите отобразить строку пользователю. Пользователь не может реально отличить «настоящую» тире и обман Unicode.
Но, если вы действительно должны быть тире (например, потому, что строка используется в качестве пароля где-нибудь, или в качестве ключа URL-адрес для АНИ), то вы можете просто использовать этот формат:

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes"> 
    <string name="EVA_API_KEY">3c42b725-5e20-41c8-982f-dee40be8a05b</string> 
</resources> 

Предупреждение будет быть удалены, а строка может быть считана с помощью регулярной:

getResources().getString(R.string.EVA_API_KEY); 
+3

это лучший ответ. Благодарю. –

+3

более простой, более элегантный, поддерживает код Google Analytics. –

+9

Один совет: вы можете поместить инструменты: ignore = «TypographyDashes» в те теги , которые действительно нуждаются в реальной тире. –

2

Тире является знак препинания, который похож на дефис или минус, но отличается от обоих этих символов, прежде всего, в длины и функции. Наиболее распространенными версиями тире являются en dash (-) и em dash (-), названные в качестве длины нижнего регистра шрифта n и верхнего регистра M соответственно.

Reference

Просто заменить - с , потому что, когда вы вводите дефис на клавиатуре, XML читает черту, как минус, это все.

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