5

XmlResourceParser を使用してカスタム android タグを解析する正しい方法を取得したいと思います。Android プラグインで Eclipse 3.6 を使用してい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.xmlXmlResourceParser を使用して最初のものを解析するコード フラグメント:

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

変数nameには が含まれていますがnull、 がshortName含まれています"o_2sq"。また、成功せずに次のことを試しました:

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

変数名に が含まれるような文の正しい書き方は"Organize two squares"?

4

3 に答える 3

4

これを試して:

String name = xpp.getAttributeValue("http://schemas.android.com/apk/res/android", "name");
于 2012-04-12T12:21:09.457 に答える
1
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);
}

上記のコードが役立つと思います。

于 2014-07-30T11:55:54.950 に答える
1

その問題を克服するために私が見つけた最良の解決策。

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 = "";
}
于 2012-05-11T06:49:07.183 に答える