Что означает несвязанный префикс при анализе XML?
Я сделал xml файл в своем приложении для Android для Custom Widget, и ошибка:
Анализ ошибок XML: несвязанный префикс
Вот мой xml файл:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.CustomWidget.MyView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/surface"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_weight="1"/>
</LinearLayout>
com.example.CustomWidget
- это имя моего пакета, а MyView
- это имя моего файла класса, в котором я создал пользовательский Widget
.
Ответы
Ответ 1
Второе пространство имен XML корректно, но это пространство имен вашего пользовательского виджета, поэтому вам нужно определить пространство имен соответствующим образом:
xmlns:android="http://schemas.android.com/apk/res/android"
становится:
xmlns:mynamespace="http://schemas.android.com/apk/res/com.myproject.myprojectname"
После этого любые пользовательские атрибутные элементы, которые вы определяете для своего пользовательского представления, будут называться:
mynamespace:my_defined_attribute="success"
вместо:
android:layout_width="fill_parent"
Ответ 2
В вашем XML файле вы должны добавить строку:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.myproject.winedeals"
.....
.....>
Ответ 3
Возьмите второе объявление пространства имен XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.CustomWidget.MyView
android:id="@+id/surface
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:focusable="true"
android:focusableInTouchMode="true" />
</LinearLayout>