質問

I have to develop one android application.

Its performs the attribute value is display on listview...

This is my xml tags:

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

I have used below code:

  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);

Here i have to run the app means the need to display category name on listview.How can i get the attribute value ??? please help me.

役に立ちましたか?

解決 2

I got the o/p after use below code:

i have done the mistake in getElementsByTagName...

Now i have changed the tag like:

NodeList nl = doc.getElementsByTagName(KEY_PNAME);

Now i have to run the output means am getting the attribute value well...

他のヒント

After loading the data from xml , loading it in to songslist, load it into the Adapter, and with Adapter getview inflate a layout and display it in the listview... look into this example: http://sogacity.com/how-to-make-a-custom-arrayadapter-for-listview/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top