【问题标题】:getattribute in android listview with hashmapandroid listview中的getattribute与hashmap
【发布时间】:2013-02-02 10:33:35
【问题描述】:

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

它执行的属性值显示在listview上...

这是我的 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);

在这里我必须运行应用程序意味着需要在列表视图上显示类别名称。我怎样才能获得属性值???请帮帮我。

【问题讨论】:

    标签: java android xml-parsing hashmap getattribute


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用下面的代码后我得到了o/p:

      我在 getElementsByTagName 中犯了错误...

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

      NodeList nl = doc.getElementsByTagName(KEY_PNAME);
      

      现在我必须运行输出,这意味着我可以很好地获取属性值...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-01
        • 2013-10-28
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-22
        相关资源
        最近更新 更多