Объявление пространства имен никогда не используется: проверяет неиспользуемые объявления пространства имен и подсказки местоположения в XML

  xmlns:tools="http://schemas.android.com/tools" 

это моя проблема, говорят, что "объявление пространства имен никогда не используется"

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="josh appear here"
    android:id="@+id/josh_text_view"
    />

    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="open Second Activity"
    android:layout_below="@+id/josh_text_view"
    android:onClick="showJosh"
    android:id="@+id/button" />

    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="open Third Activity"
    android:onClick="showJosh"
    android:id="@+id/button2"

и в каждой кнопке есть это предупреждение, которое всегда выскакивает

[I18N] Жестко закодированная строка "open Second Activity", должна использовать ресурс @string less... (Ctrl+F1) Жесткое кодирование текстовых атрибутов непосредственно в файлах макета плохо по нескольким причинам:

  • При создании вариантов конфигурации (например, для пейзажа или портрета) необходимо повторить фактический текст (и обновлять его при внесении изменений)

  • Приложение нельзя перевести на другие языки, просто добавив новые переводы для существующих строковых ресурсов. В Android Studio и Eclipse есть быстрые исправления для автоматического извлечения этой жестко запрограммированной строки в поиск ресурсов.

            android:layout_below="@+id/button"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="10dp" />
    
            <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="open Fourth Activity"
            android:onClick="showJosh"
            android:id="@+id/button3"
    
            android:layout_below="@+id/button"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="75dp" />
    
    </RelativeLayout>
    

1 ответ

Решение

Namespace declaration is not used это не ошибка Это просто предупреждение. Вы можете удалить эту строку, если хотите, но можете просто оставить ее в покое. Что касается использования ресурса @string, рекомендуется определить строковые значения внутри файла strings.xml и ссылаться на них в своем проекте. Файл strings.xml находится в вашей папке res>values. Например: в вашем файле strings.xml уже должно быть несколько строковых ресурсов. Добавьте следующую строку в файл

<string name="openThird">open Third Activity</string>

Теперь, внутри вашего файла макета, сделайте это

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/openThird"
android:onClick="showJosh"
android:id="@+id/button2"

Сделайте то же самое с другими кнопками. Определите строковые значения внутри вашего strings.xml, а затем используйте их в макете.

Другие вопросы по тегам