0

ここで、1つの配列リストまたはハッシュマップで解析マップ値を取得したいのですが、どちらが良い方法かわかりません。

ここに私のXMLファイルがあります

このことを解析するためにSAXパーサーを使用しています

<Navigation useNavi="1" auto="1" diable="0" >
<Map MapName="paris" MapPath="\Storage Card\PA\xyz" LoadAtStartup="1" />
<Map MapName="swiss" MapPath="\Storage Card\SW\abc" LoadAtStartup="0" />
<Map MapName="delhi" MapPath="\Storage Card\DE\del" LoadAtStartup="1" />
</Navigation>

ここでタグを貼り付けたいのですがMap、簡単にはできず、その属性値も取得できませんが、このMap要素の属性値を例としてMapNameどのように管理できるかを知りたいのですが、属性値parisのように将来的にそれぞれの値を使用したいと考えていLoadAtStartupます。

これらの 3 つのマップ値を管理するにはどうすればよいですか?

ありがとう

サム

4

2 に答える 2

0

クラスを作成します。

class MapObject
    public string MapName;
    public string MapPath;
    public boolean LoadAtStartup;

    public MapObject(string name, string path, boolean loadAtStartup){
       this.MapName = name;
       this.MapPath = path;
       this.LoadAtStartup = loadAtStartup;
    }

そして、クラス インスタンスのコンテナ:

List<MapObject> mapsObjects = new List<MapObject>();

そして、JSON パーサーの新しいインスタンス (疑似コード、既にこれを持っています)

 for each object in JSON data{
     mapObjects.add(new MapObject(name attribute, path attribute, loadAtStartup attribute);
 }
于 2012-11-27T11:26:02.583 に答える
0

あなたの質問にはさまざまな解決策があります。おそらく、次の方法で解決策が得られるでしょう。

    HashMap<String, Pair<String, Boolean>> mapEntries = new HashMap<String, Pair<String,Boolean>>();

    //Inside SAX callback
    String place = attrs.getValue("MapName");
    String path = attrs.getValue("MapPath");
    Boolean isLoadAtStartup = Integer.parseInt(attrs.getValue("LoadAtStartup")) == 1;
    mapEntries.put(place, new Pair<String, Boolean>(path, isLoadAtStartup));

上記はandroid.util.Pairクラスを使用しています。ユーザー定義のコンテナ クラス (@Simon が示すように) も使用できます。

于 2012-11-27T11:35:58.193 に答える