2013-02-02 28 views
0

我必须开发一个android应用程序。getattribute在Android的listview与hashmap

其执行的属性值是在列表视图显示...

这是我的XML标签:

<root> 
<Categories> 
<Category name="books"> 
<Articles> 
    <article articleid="170" title="Colour And Vibrancy Are Part Of Our DNA"> 
    <Description> 
    Well-known interior designer 
</Description> 

我用下面的代码:

public class MainActivity extends Activity { 

    String URL; 
    static String KEY_CATEGORY = "Categories"; 
    ArrayList<HashMap<String, String>> songsList; 
    static final String KEY_PNAME = "Category"; 
    static final String KEY_PRICE = "Description"; 
    static final String KEY_THUMB_URL = "thumb_image"; 

     ListAdapter adapter; 

    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     songsList = new ArrayList<HashMap<String, String>>(); 
    HorizontalListView list = (HorizontalListView) findViewById(R.id.listView1); 

    adapter = new ListAdapter(this, songsList); 
    list.setAdapter(adapter); 

    URL="http://webservices/new_feed_articls.xml"; 

     XMLParser parser = new XMLParser(); 
     String xml = parser.getXmlFromUrl(URL); // getting XML from URL 
     Document doc = parser.getDomElement(xml);// getting DOM element 

     NodeList nl = doc.getElementsByTagName(KEY_CATEGORY); 
     int numResults = parser.numResults(doc); 

     if((numResults <= 0)){ 
      Toast.makeText(MainActivity.this, "There is no data in the xml file", Toast.LENGTH_LONG).show(); 
      finish(); 
     } 


     // looping through all song nodes &lt;song&gt; 
     for (int i = 0; i < nl.getLength(); i++) { 
      // creating new HashMap 
      HashMap<String, String> map = new HashMap<String, String>(); 
      Element e = (Element) nl.item(i); 
      // adding each child node to HashMap key =&gt; value 
      map.put(KEY_PNAME,((Element)nl.item(i)).getAttribute("name")); 


      map.put(KEY_PRICE, parser.getValue(e, KEY_PRICE)); 
       map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL)); 

      // adding HashList to ArrayList 
      songsList.add(map); 
     } 


     // Click event for single list row 
     list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       HashMap<String, String> map = songsList.get(position); 

这里我运行应用程序意味着需要在listview上显示类别名称。如何获取属性值?请帮帮我。 http://sogacity.com/how-to-make-a-custom-arrayadapter-for-listview/

回答

0

加载从XML数据,加载它在到songslist,它装入适配器,并用适配器getview膨胀的布局,并在列表视图显示它...一下这个例子后我得到的O/p下面的代码使用后:

我已经做过的getElementsByTagName的错误...

我现在已经改变了标签,如:

NodeList nl = doc.getElementsByTagName(KEY_PNAME); 

现在我必须运行输出意味着获得属性值...