Android Замените «…» на многоточие

287

С инструментами AVD 16 я получаю это предупреждение:

Replace "..." with ellipsis character (..., …) ?

в моей строке .xml

в этой строке

 <string name="searching">Searching...</string>

Как мне заменить... это просто буквально: &#8230;

Если кто-то может объяснить эту кодировку, пожалуйста?

  • 0
    В качестве заметки я заметил, что некоторые из собственных переведенных строковых файлов Android используют ... сам по себе, а не сущность Unicode. Учитывая, что файлы Android XML обычно кодируются в UTF-8, в любом случае, я не вижу причин не использовать сам символ, а не потенциально-эзотерическую сущность Unicode, тем более что большинство программ обработки текста в наши дни поддерживают автозамену "..." в " … »(Microsoft Word делает это по умолчанию, последний раз я проверял).
  • 0
    Это на самом деле три точки (ASCII 46 / 0x26)? Или ASCII 133 (один символ)?
Теги:
encoding
adt

6 ответов

544
Лучший ответ

&#8230; - это unicode для "...", поэтому просто замените его. Лучше иметь его как один символ char/, чем три точки.

  • 0
    Спасибо, когда я понимаю Unicode, когда я впервые заменил его, Eclipse изменил мой & в & amp; (У меня был двойной &&). Исправлена!
  • 37
    Почему это "лучше"? Это усложняет вещи при передаче текста переводчикам. Можем ли мы как-то убить это глупое предупреждение? Спасибо
Показать ещё 11 комментариев
14

Чтобы сделать короткую вещь, просто положите &#x2026; на место...

Ссылка на список объектов XML

  • Посмотрите на столбец Unicode HTML для строки с именем hellip
  • 5
    Сначала я задавался вопросом, почему вы использовали &#x2026; когда в предупреждении Eclipse говорится об использовании &#8230; но ваша ссылка действительно отвечает на это. А именно, что x обозначает шестнадцатеричное значение, а 8230 в десятичном виде - это 2026 в шестнадцатеричном.
  • 0
    куда положить это & # x2026 любое место для этого.
Показать ещё 1 комментарий
13

Если вы используете Eclipse, вы всегда можете сделать следующее:

  • Щелкните правой кнопкой мыши предупреждение
  • Выберите "Быстрое исправление" (ярлык Ctrl + 1 по умолчанию)
  • Выберите "Заменить с помощью предложенных символов"

Это должно заменить ваши три точки соответствующим символом Юникода для многоточия.

Просто примечание: последняя версия ADT (21.1) иногда не будет выполнять операцию замены должным образом, но в более ранних версиях не было проблем с этим.

Это символ:

  • 0
    Это сработало для меня! Однако ничего «визуального» не произошло, кроме исчезнувшего предупреждения, и я запускаю ADT 22.2.1. Но я думаю, вот как это работает :)
  • 0
    Не работал для меня Eclipse предложил мне (я не знаю почему) окружить тег <resources> новым тегом <element>.
Показать ещё 1 комментарий
10

Решение вашей проблемы:

Go to Window -> Preferences -> Android -> Lint Error Checking

Ищите "многоточие". Измените уровень предупреждения на "Информация" или "Игнорировать".

  • 8
    Эти предложения имеют смысл. Просто игнорировать их - это всего лишь решение, если вы действительно уверены, что делаете. В этом случае замена имеет смысл, поэтому игнорировать предупреждение нехорошо.
  • 0
    Спасибо! Как раз то, что я искал. И это место, где можно делать разные связанные вещи (мне не нужен компьютер, чтобы сказать мне, как пишется, пишется с большой буквы или пунктуируется). Очень полезно!
Показать ещё 2 комментария
1

Этот ответ косвенно связан с этим вопросом:

В моем случае textView1.setTextView("done&#8230"); показывался некоторый символ box/chinese. Позже я зарегистрировался на fileformat.info для того, что представляет значение, и я обнаружил, что это символ Хан. Так что делать? Я искал "fileformat.info символ эллипса", и тогда мне стало ясно, как только я увидел его значения:

UTF-16 (hex) 0x2026 (2026)

UTF-16 (decimal) 8,230

Итак, у вас есть несколько кодировок, доступных для представления символа (например, 10 в десятичном формате представлено как A в шестнадцатеричном формате), поэтому очень важно знать, когда вы пишете символ юникода, как функция приема декодирует его. Если он декодирует как десятичное значение, тогда вы должны указать десятичное значение, если оно принимает шестнадцатеричное число, тогда вы должны указать шестнадцатеричный.

В моем случае функция setTextView() принимает десятичное кодированное значение, но я предоставлял шестнадцатеричные значения, поэтому я получал неправильный символ.

0

Сочетание клавиш быстрого исправления в Android Studio по умолчанию - Alt + Enter.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню