Hey Leute,
ich bin gerade dabei RSS-Feed in meiner Applikation anzuzueigen...
Habe auch alles eigentlich korrekt programmiert (auf dem PC funktioniert alles wie es soll...Die Feeds werden ausgelesen, in eine ArrayList gespeichert, übergeben und dann ausgegeben...)
Wenn ich es jedoch in die Applikation einbaue sagt er mir wenn ich es ausgeben will das die Liste leer is... oO
Was mach ich nu falsch?
ich bin gerade dabei RSS-Feed in meiner Applikation anzuzueigen...
Habe auch alles eigentlich korrekt programmiert (auf dem PC funktioniert alles wie es soll...Die Feeds werden ausgelesen, in eine ArrayList gespeichert, übergeben und dann ausgegeben...)
Wenn ich es jedoch in die Applikation einbaue sagt er mir wenn ich es ausgeben will das die Liste leer is... oO
Was mach ich nu falsch?
Java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RSSReader reader = new RSSReader();
ArrayList<NewsView> list = reader.writeNews();
postNews(list);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void postNews(ArrayList<NewsView> list) {
int size = list.size();
LinearLayout lay = (LinearLayout) findViewById(R.id.linLay);
for(NewsView nv : list)
TextView tv = new TextView(getApplicationContext());
tv.setText(nv.getHeader());
tv.setPadding(20, 20, 0, 0);
lay.addView(tv);
}
}
Java:
package com.example.js_countdown;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class RSSReader {
private static RSSReader instance = null;
RSSReader() {
super();
}
public static RSSReader getInstance() {
if (instance == null)
instance = new RSSReader();
return instance;
}
public ArrayList<NewsView> writeNews() {
ArrayList<NewsView> list = new ArrayList<NewsView>();
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
URL u = new URL(
"xxxxxxx");
Document doc = builder.parse(u.openStream());
NodeList nodes = doc.getElementsByTagName("item");
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NewsView nv = new NewsView(getElementValue(element, "title"),
getElementValue(element, "pubDate"), getElementValue(
element, "description"));
list.add(nv);
}
} catch (Exception ex) {
ex.printStackTrace();
}
return list;
}
private String getCharacterDataFromElement(Element e) {
try {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
} catch (Exception ex) {
}
return "";
}
protected float getFloat(String value) {
if (value != null && !value.equals(""))
return Float.parseFloat(value);
else
return 0;
}
protected String getElementValue(Element parent, String label) {
return getCharacterDataFromElement((Element) parent
.getElementsByTagName(label).item(0));
}
public static void main(String[] args) {
RSSReader reader = RSSReader.getInstance();
reader.writeNews();
}
}
Java:
package com.example.js_countdown;
public class NewsView {
private String header;
private String date;
private String content;
public NewsView() {
super();
}
public NewsView(String header, String date, String content) {
this();
this.header = header;
this.date = date;
this.content = content;
}
public String getContent() {
return content;
}
public String getDate() {
return date;
}
public String getHeader() {
return header;
}
public void setContent(String content) {
this.content = content;
}
public void setDate(String date) {
this.date = date;
}
public void setHeader(String header) {
this.header = header;
}
}
Zuletzt bearbeitet: