如何使RSS新闻阅读器应用程序在Android中....?阅读器、应用程序、新闻、RSS

2023-09-06 07:52:24 作者:我真的受伤了

我有一个样品code从XML解析数据,在XML解析SAX,DOC和XML解析器拉这是最好的XML解析器,什么是JSON解析器...?以及如何解析的消息通过与任何例子JSON parser.please答案供稿

 公共类MainActivity1延伸活动{   私人字符串  finalUrl =htt​​p://downloads.bbc.co.uk/podcasts/worldservice/globalnews/rss.xml;  私人HandleXML OBJ;  私人TextView的标题,链接,描述;  私人的LinearLayout mWeatherInfosLayout;    @覆盖   保护无效的onCreate(捆绑savedInstanceState){   super.onCreate(savedInstanceState);   意向意图= getIntent();   finalUrl = intent.getStringExtra(URL);   的setContentView(R.layout.activity_main_activity1);   mWeatherInfosLayout =(的LinearLayout)findViewById(R.id.weather_infos1);   取();   }   @覆盖   公共布尔onCreateOptionsMenu(菜单菜单){  //充气菜单;如果是present这增加了项目操作栏。  。getMenuInflater()膨胀(R.menu.main,菜单);  返回true;}  公共无效取(){   OBJ =新HandleXML(finalUrl);  obj.fetchXML();  mWeatherInfosLayout.removeAllViews();  而(obj.parsingComplete)  {      如果(obj.gotit)      {        最终的LinearLayout forecastInfoLayout =(LinearLayout中)                getLayoutInflater()膨胀(R.layout.feedlist,NULL);        最终的TextView tvWeather1 =(TextView中)  forecastInfoLayout.findViewById(R.id.textview_forecast_info1);        最终的TextView tvWeather2 =(TextView中)  forecastInfoLayout.findViewById(R.id.textview_forecast_info2);        最终的TextView tvWeather3 =(TextView中)  forecastInfoLayout.findViewById(R.id.textview_forecast_info3);        最终的TextView tvWeather4 =(TextView中)    forecastInfoLayout.findViewById(R.id.textview_forecast_info4);        tvWeather1.setText(obj.getTitle());        tvWeather4.setText(obj.getPubDate());        tvWeather2.setText(obj.getLink());        串串= obj.getDescription();        的String [] =零件string.split(<);        第一部分的String =零件[0];        tvWeather3.setText(第一部分);        mWeatherInfosLayout.addView(forecastInfoLayout);        obj.setgotit();        }     }     }     } 

解决方案

相应更改HandleXML类。

 公共类HandleXML {   私人字符串标题=称号;   私人字符串链接=联系;   私人字符串描述=说明;   私人字符串urlString = NULL;   私人XmlPullParserFactory xmlFactoryObject;   公共挥发性布尔parsingComplete = TRUE;   公共HandleXML(字符串URL){      this.urlString =网址;   }    公共字符串的getTitle(){     返回称号;   }   公共字符串getLink(){    返回的链接;  }  公共字符串getDescription(){    返回描述; }   公共无效parseXMLAndStoreIt(XmlPullParser myParser){    INT事件;    字符串文本= NULL;     尝试{      事件= myParser.getEventType();       而(事件!= XmlPullParser.END_DOCUMENT){        字符串名称= myParser.getName();          开关(事件){          案例XmlPullParser.START_TAG:          打破;        案例XmlPullParser.TEXT:           文字= myParser.getText();        打破;        案例XmlPullParser.END_TAG:           如果(name.equals(标题)){              标题=文字;           }           否则,如果(name.equals(链接)){              链接=文本;           }           否则,如果(name.equals(说明)){              说明=文本;           }           其他{           }           打破;     }     事件= myParser.next();   }   parsingComplete = FALSE;  }赶上(例外五){     e.printStackTrace();  }  }   公共无效fetchXML(){     线程线程=新主题(新的Runnable(){ @覆盖 公共无效的run(){  尝试{     网址URL =新的URL(urlString);     HttpURLConnection的康恩=(HttpURLConnection类)url.openConnection();     conn.setReadTimeout(10000 / *毫秒* /);     conn.setConnectTimeout(15000 / *毫秒* /);     conn.setRequestMethod(GET);     conn.setDoInput(真);     //开始查询     conn.connect();     InputStream的流= conn.getInputStream();     xmlFactoryObject = XmlPullParserFactory.newInstance();     XmlPullParser myparser = xmlFactoryObject.newPullParser();     myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES,FALSE);     myparser.setInput(流,NULL);     parseXMLAndStoreIt(myparser);     stream.close();    }赶上(例外五){    }    }    });    thread.start(); } } 

Android 上的 RSS 阅读器怎么选 这 7 款好看好用的 App 不能错过

i have a sample code for parsing data from XML , In XML parsing SAX,DOC,and XML Pull parser which is the best XML parser ,what is json parser...? and how to parse news feeds through json parser.please answer with any examples

   public class MainActivity1 extends Activity {
   private String   

  finalUrl="http://downloads.bbc.co.uk/podcasts/worldservice/globalnews/rss.xml";
  private HandleXML obj;
  private TextView title,link,description;
  private LinearLayout mWeatherInfosLayout;

    @Override
   protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   Intent intent = getIntent();
   finalUrl = intent.getStringExtra("url");
   setContentView(R.layout.activity_main_activity1);
   mWeatherInfosLayout = (LinearLayout) findViewById(R.id.weather_infos1);
   fetch();

   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
}
  public void fetch(){
   obj = new HandleXML(finalUrl);
  obj.fetchXML();
  mWeatherInfosLayout.removeAllViews();
  while(obj.parsingComplete)
  {     

      if(obj.gotit)
      {

        final LinearLayout forecastInfoLayout = (LinearLayout) 
                getLayoutInflater().inflate(R.layout.feedlist, null);

        final TextView tvWeather1 = (TextView)   
  forecastInfoLayout.findViewById(R.id.textview_forecast_info1);

        final TextView tvWeather2 = (TextView) 
  forecastInfoLayout.findViewById(R.id.textview_forecast_info2);

        final TextView tvWeather3 = (TextView) 
  forecastInfoLayout.findViewById(R.id.textview_forecast_info3);

        final TextView tvWeather4 = (TextView) 
    forecastInfoLayout.findViewById(R.id.textview_forecast_info4);

        tvWeather1.setText(obj.getTitle());
        tvWeather4.setText(obj.getPubDate());
        tvWeather2.setText(obj.getLink());
        String string = obj.getDescription();
        String[] parts = string.split("<");
        String part1 = parts[0];
        tvWeather3.setText(part1);
        mWeatherInfosLayout.addView(forecastInfoLayout);
        obj.setgotit();
        }
     }

     }
     }

解决方案

Change your HandleXML Class accordingly.

public class HandleXML {

   private String title = "title";
   private String link = "link";
   private String description = "description";

   private String urlString = null;
   private XmlPullParserFactory xmlFactoryObject;
   public volatile boolean parsingComplete = true;
   public HandleXML(String url){
      this.urlString = url;
   }
    public String getTitle(){
     return title;
   }
   public String getLink(){
    return link;
  }
  public String getDescription(){
    return description;
 }
   public void parseXMLAndStoreIt(XmlPullParser myParser) {
    int event;
    String text=null;
     try {
      event = myParser.getEventType();
       while (event != XmlPullParser.END_DOCUMENT) {
        String name=myParser.getName();
          switch (event){
          case XmlPullParser.START_TAG:
          break;
        case XmlPullParser.TEXT:
           text = myParser.getText();
        break;
        case XmlPullParser.END_TAG:
           if(name.equals("title")){
              title = text;
           }
           else if(name.equals("link")){    
              link = text;
           }
           else if(name.equals("description")){
              description = text;
           }
           else{
           }
           break;
     }       
     event = myParser.next(); 
   }
   parsingComplete = false;
  } catch (Exception e) {
     e.printStackTrace();
  }
  }
   public void fetchXML(){
     Thread thread = new Thread(new Runnable(){
 @Override
 public void run() {
  try {
     URL url = new URL(urlString);
     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
     conn.setReadTimeout(10000 /* milliseconds */);
     conn.setConnectTimeout(15000 /* milliseconds */);
     conn.setRequestMethod("GET");
     conn.setDoInput(true);
     // Starts the query
     conn.connect();
     InputStream stream = conn.getInputStream();
     xmlFactoryObject = XmlPullParserFactory.newInstance();
     XmlPullParser myparser = xmlFactoryObject.newPullParser();
     myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
     myparser.setInput(stream, null);
     parseXMLAndStoreIt(myparser);
     stream.close();
    } catch (Exception e) {
    }
    }
    });
    thread.start(); 
 }
 }

 
精彩推荐
图片推荐