0

我必须开发一个 android 应用程序。

它执行的属性值显示在列表视图上...

这是我的 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上显示类别名称。我怎样才能获得属性值???请帮我。

4

2 回答 2

0

从 xml 加载数据后,将其加载到歌曲列表中,将其加载到适配器中,并使用适配器 getview 膨胀布局并将其显示在列表视图中......看看这个例子: http ://sogacity.com/how- to-make-a-custom-arrayadapter-for-listview/

于 2013-02-02T10:59:42.477 回答
0

使用以下代码后,我得到了 o/p:

我在 getElementsByTagName 中犯了错误...

现在我改变了标签,如:

NodeList nl = doc.getElementsByTagName(KEY_PNAME);

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

于 2013-02-04T12:04:32.713 回答