Hey Leute,
hab ein kleines Problem und ich hoffe das mir wer von euch helfen kann. Also ich schreibe zur Zeit eine App die News darstellen soll. Die News werden auf der mainpage als ListView Dargestellt und dort liegt auch das Problem, ich finde den Fehler nur nicht.
Ich poste einfach mal den Code:
Activity:
Der ListAdapter:
Der XML parser:
Also ich bekomm eine Nullpointer-Exception und das Log sagt das diese in dem Adapter auftritt und zwar in Zeile 47. Woran kann das liegen?
Danke schon einmal
hab ein kleines Problem und ich hoffe das mir wer von euch helfen kann. Also ich schreibe zur Zeit eine App die News darstellen soll. Die News werden auf der mainpage als ListView Dargestellt und dort liegt auch das Problem, ich finde den Fehler nur nicht.
Ich poste einfach mal den Code:
Activity:
Java:
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import org.xml.sax.InputSource;
import de.holgerR;
import de.parser.TextNews;
import de.parser.TextNewsParser;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ListView;
import android.content.Intent;
public class StartpageActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startpage);
ActivityRegistry.register(this);
final ImageButton homebutton = (ImageButton) findViewById(R.id.HomeButtonStart);
final ImageButton categorybutton = (ImageButton) findViewById(R.id.CategoryButtonStart);
TextNewsParser textNewsParser = new TextNewsParser();
TextNewsAdapter textNewsAdapter = new TextNewsAdapter(this, textNewsParser.getList());
ListView lv = (ListView)findViewById(R.id.startpagelist);
lv.setAdapter(textNewsAdapter);
homebutton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent startpageIntent = new Intent(StartpageActivity.this, StartpageActivity.class);
startActivity(startpageIntent);
}
});
categorybutton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent categoryIntent = new Intent(StartpageActivity.this, CategoryActivity.class);
startActivity(categoryIntent);
}
});
}
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.optionsmenu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.exit:
exit();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void exit(){
ActivityRegistry.finischAll();
}
}
Der ListAdapter:
Java:
public class TextNewsAdapter extends ArrayAdapter<TextNews> {
private ArrayList<TextNews> textNewsList;
private Activity context;
public TextNewsAdapter(Context context, ArrayList<TextNews> textNews) {
super(context, R.layout.topnews_item, textNews);
this.textNewsList = textNews;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.topnews_item, null, true);
TextView title = (TextView)convertView.findViewById(R.id.topnews_topic);
TextView description = (TextView)convertView.findViewById(R.id.topnews_description);
ImageView topnews_img = (ImageView)convertView.findViewById(R.id.topnews_image);
TextNews textNews = getItem(position);
title.setText(textNews.getTitle());
description.setText(textNews.getDescription());
//TODO URL als Image Resource
topnews_img.setImageResource(R.drawable.ic_launcher);
return convertView;
}
static class ViewHolder {
TextView title, description;
ImageView topnews_img;
}
}
Der XML parser:
Java:
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
public class TextNewsParser {
private ArrayList<TextNews> newslist;
public TextNewsParser(){
try {
URL url = new URL("...");// Internetadresse die eine XML Datei zur Verfügung stellt
SAXParserFactory saxparserfactory = SAXParserFactory.newInstance();
saxparserfactory.setNamespaceAware(true);
SAXParser saxparser = saxparserfactory.newSAXParser();
XMLReader xmlreader = saxparser.getXMLReader();
TextNewsHandler textnewshandler = new TextNewsHandler();
xmlreader.setContentHandler(textnewshandler);
xmlreader.parse(new InputSource(url.openStream()));
newslist = textnewshandler.getNewslist();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Also ich bekomm eine Nullpointer-Exception und das Log sagt das diese in dem Adapter auftritt und zwar in Zeile 47. Woran kann das liegen?
Danke schon einmal