2011-07-29 8 views
0

私はwebservicesの小さなアプリケーションを作っています。私のXMLリンクはhttp://dl.dropbox.com/u/7215751/JavaCodeGeeks/AndroidFullAppTutorialPart03/Brad+Pitt.xml私のアプリケーションでアンドロイドで解析した後にテキストとイメージを表示する方法は?

ですが、アプリケーションですべてのXMLデータを表示する方法がわかりません。 私のコードは

import java.util.ArrayList; 

    import org.xml.sax.Attributes; 
    import org.xml.sax.SAXException; 
    import org.xml.sax.helpers.DefaultHandler; 
     import com.javacodegeeks.android.apps.moviesearchapp.model.Image; 
    import com.javacodegeeks.android.apps.moviesearchapp.model.Person; 

    public class PersonHandler extends DefaultHandler { 

     private StringBuffer buffer = new StringBuffer(); 

     private ArrayList<Person> personList; 
     private Person person; 
     private ArrayList<Image> personImagesList;  private Image personImage; 

     @Override 
     public void startElement(String namespaceURI, String localName, 
       String qName, Attributes atts) throws SAXException { 

      buffer.setLength(0); 

      if (localName.equals("people")) { 
       personList = new ArrayList<Person>(); 
      } 
      else if (localName.equals("person")) { 
       person = new Person(); 
      } 
      else if (localName.equals("images")) { 
       personImagesList = new ArrayList<Image>(); 
      } 
      else if (localName.equals("image")) { 
       personImage = new Image(); 
       personImage.type = atts.getValue("type"); 
       personImage.url = atts.getValue("url"); 
       personImage.size = atts.getValue("size"); 
       personImage.width = Integer.parseInt(atts.getValue("width")); 
       personImage.height = Integer.parseInt(atts.getValue("height")); 
      } 

     } 

     @Override 
     public void endElement(String uri, String localName, String qName)throws SAXException { 

      if (localName.equals("person")) { 
       personList.add(person); 
      } 
      else if (localName.equals("score")) { 
       person.score = buffer.toString(); 
      } 
      else if (localName.equals("popularity")) { 
       person.popularity = buffer.toString(); 
      } 
      else if (localName.equals("name")) { 
       person.name = buffer.toString(); 
      } 
      else if (localName.equals("id")) { 
       person.id = buffer.toString(); 
      } 
      else if (localName.equals("biography")) { 
       person.biography = buffer.toString(); 
      } 
      else if (localName.equals("url")) { 
       person.url = buffer.toString(); 
      } 
      else if (localName.equals("version")) { 
       person.version = buffer.toString(); 
      } 
      else if (localName.equals("last_modified_at")) { 
       person.lastModifiedAt = buffer.toString(); 
      } 
      else if (localName.equals("image")) { 
       personImagesList.add(personImage); 
      } 
      else if (localName.equals("images")) { 
       person.imagesList = personImagesList; 
      } 

     } 

     @Override 
     public void characters(char[] ch, int start, int length) { 
      buffer.append(ch, start, length); 
     } 

     public ArrayList<Person> retrievePersonList() { 
      return personList; 
     } 

    } 

誰でもplzは自分のアプリケーションに画像にタグ内部&テキストを表示するために私を助けることができるです。 [OK]を

+0

あなたを助けます。 – Androider

+0

しかし、私は画像を表示することができません –

+0

画像はどこに保存されていますか?私はあなたが文字列として格納されているimagenameを持っていると仮定しますか? – Androider

答えて

0

は、ここで私達は行く:

あなたが描画可能なフォルダに保存されている画像を持っていると仮定すると、これはあなたを助けることができます。

Resources res = getResources(); 
ImageView iv = new ImageView(getApplicationContext()); 
String temp = ; // Get name of the image from arraylist 
String imageId = temp.replace(".jpg", ""); 
int image = res.getIdentifier(imageId, "drawable", getPackageName()); 
iv.setBackGroundResource(image); 

ホープこれは単にアレイから情報を取得し、チョイスの景色に押し込み、あなたはArrayListのに解析されたすべてのものを持っている:)

+0

ここで何が起こっているのか説明できますか?これはwebserviceのXMLファイルにある画像のためのものですか?http://dl.dropbox.com/u/7215751/JavaCodeGeeks/AndroidFullAppTutorialPart03/Brad+Pitt.xml –

+0

提供されたコードは単に文字列からのパスを作成しますが、 drawableであなたのイメージのIDを見つけて、それをビュー – Androider

+0

に設定します。ただし、イメージがアセットにある場合はassetmanagerを使用しますが、ビットマップを指定しない限りはアドバイスしません。それがネット上にある場合は、まずSDカードにダウンローダを使用して設定します。 – Androider

関連する問題