2012-09-12 101 views
0

我想在自定义列表视图中显示分析的XML数据,但屏幕似乎是空的。我试图将xml数据添加到类对象中并将其显示在自定义列表视图中。 但我的类变量没有得到指定的值如何在自定义列表视图中显示XML数据?

List myNews = new ArrayList();

try{ 
     URL url = new URL("http://timesofindia.feedsportal.com/c/33039/f/533916/index.rss"); 

     XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(false); 
     XmlPullParser xpp = factory.newPullParser(); 

     xpp.setInput(getInputStream(url), "UTF_8"); 

     boolean insideItem = false; 

     int eventType = xpp.getEventType(); 

     while(eventType != XmlPullParser.END_DOCUMENT){ 

      if(eventType == XmlPullParser.START_TAG){ 

       if(xpp.getName().equalsIgnoreCase("item")){ 
        insideItem = true; 
       } 
       else if(xpp.getName().equalsIgnoreCase("title")){ 
        if(insideItem){ 
         headLines = xpp.nextText().toString(); 
        } 
       } 
       else if(xpp.getName().equalsIgnoreCase("link")){ 
        if(insideItem){ 
         links.add(xpp.nextText()); 

        } 
       } 
       else if(xpp.getName().equalsIgnoreCase("pubDate")){ 
        if(insideItem){ 
         date = xpp.nextText().toString(); 

        } 
       } 


      } 
      else if(eventType == XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("item")){ 
       insideItem = false; 
      } 

      myNews.add(new News(headLines, date)); 
      eventType = xpp.next(); 
     } 
    } 
    catch (Exception e) { 
     Log.d("Exception" , e.toString()); 
    } 

    LazyAdapter adapter = new LazyAdapter(this, myNews); 
    setListAdapter(adapter); 
    ListView listView = getListView(); 
    listView.setTextFilterEnabled(true); 

这是我LazyAdapter代码...

公共类LazyAdapter延伸BaseAdapter {

Activity activity; 
private List<News> myNews; 


public LazyAdapter(Activity a, List<News> myNews) { 
    this.activity = a; 
    this.myNews = myNews; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    News news = myNews.get(position); 
    View v = convertView; 

    if(v == null){ 
     LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = inflater.inflate(R.layout.list, null); 
    } 

    TextView heading = (TextView)v.findViewById(R.id.textView1); 
    heading.setText(news.getTitle()); 
    TextView pubDate = (TextView)v.findViewById(R.id.textView2); 
    pubDate.setText(news.getPubDate()); 
    heading.setText(news.getTitle()); 
    pubDate.setText(news.getPubDate()); 

    return v; 
} 

@Override 
public int getCount() { 

    return myNews.size(); 
} 

@Override 
public Object getItem(int position) { 

    return myNews.get(position); 
} 

@Override 
public long getItemId(int position) { 

    return position; 
} 

}

+0

它来自xml文件吗? – fasheikh

回答

0

首先,我会建议使用Spring Framework for Android照顾您的http请求解析您的XML。该框架以一种非常干净的方式来处理XML和JSON解析。

此外,您可以发布您的LazyAdapter代码吗?

+0

这是我的LazyAdapter代码... – ssg

+0

你能帮我解决.... – ssg

相关问题