Пользовательский XML-парсер Android не разрешает пространство имен android

Я хотел бы получить правильный способ разбора пользовательских тегов Android с помощью XmlResourceParser. Я использую Eclipse 3.6 с подключаемым модулем android, и мне хотелось бы, чтобы некоторые атрибуты, такие как name были расширены с помощью полной строки из strings.xml .

Вот index.xml который анализируется в папке res/xml/ .

 <?xml version="1.0" encoding="utf-8"?> <Index xmlns:android="http://schemas.android.com/apk/res/android"> <Sheet shortName="o_2sq" android:name="@string/o_2sq" instructions="" /> </Index> 

Вот файл strings.xml в папке res/values/

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="o_2sq">Organize two squares</string> </resources> 

И фрагмент кода, который анализирует первый index.xml с помощью XmlResourceParser:

 String name = xpp.getAttributeValue(null, "android:name"); String shortName = xpp.getAttributeValue(null, "shortName"); 

Имя переменной содержит null , но shortName содержит "o_2sq" . Я также пробовал следующее без успеха:

 String name = xpp.getAttributeValue("android", "name"); 

Каков правильный способ написания предложения, чтобы имя переменной содержало "Organize two squares" ?

Попробуй это:

 String name = xpp.getAttributeValue("http://schemas.android.com/apk/res/android", "name"); 

Лучшее решение, которое я нашел, чтобы преодолеть эту проблему.

 String s = xpp.getAttributeValue("http://schemas.android.com/apk/res/android", "name"); String name = null; if(s != null && s.length() > 1 && s.charAt(0) == '@') { int id = Integer.parseInt(s.substring(1)); name = getString(id); } else { name = ""; } 
 final String NAMESPACE_ANDROID = "http://schemas.android.com/apk/res/android"; final int VALUE_NOT_SET = -1; int resId = parser.getAttributeResourceValue(NAMESPACE_ANDROID, "name", VALUE_NOT_SET); String value = null; if (VALUE_NOT_SET != resId) { value = context.getString(resId); } 

Я думаю, что приведенный выше код может вам помочь.

Intereting Posts
Android Studio: предоставить разрешение между установкой теста APK и текущими тестами с графическим тестовым бегуном Есть неустранимые ошибки, которые необходимо исправить сначала GetPreferenceManager устарел WebView возвращает bad window.innerHeight PDFRenderer масштабирует и переворачивает Расширяемый список с флажком selectall: group itemclick и прокрутка Пользовательская обработка ошибок с помощью «Дооснащения» при запутании с помощью proguard дает java.lang.reflect.UndeclaredThrowableException Android Download Manager setDestinationInExternalFilesDir Экспорт друзей друзей друзей по электронной почте Android SearchWidget не вызывает onSearchRequested () Открыть новый экран в Android? Push Notification не отображается пользователю для функции APPINVITE в Facebook SDK для Android Остановка звука, когда другой звук начал воспроизводиться на устройстве Как смотреть журналы из Slog Как получить доступ к веб-сервису, запущенному на компьютере Win7, с невращаемого устройства Android через USB?