package net.sgoliver.android.xml;
import java.util.List;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button btnCargar;
private TextView txtResultado;
private List<Noticia> noticias;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCargar = (Button)findViewById(R.id.btnCargar);
txtResultado = (TextView)findViewById(R.id.txtResultado);
btnCargar.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Sin Tarea As�ncrona
//RssParserSax saxparser =
// new RssParserSax("http://212.170.237.10/rss/rss.aspx");
//noticias = saxparser.parse();
//Tratamos la lista de noticias
//Por ejemplo: escribimos los t�tulos en pantalla
//txtResultado.setText("");
//for(int i=0; i<noticias.size(); i++)
//{
// txtResultado.setText(
// txtResultado.getText().toString() +
// System.getProperty("line.separator") +
// noticias.get(i).getTitulo());
//}
//Con Tarea As�ncrona
CargarXmlTask tarea = new CargarXmlTask();
tarea.execute("http://212.170.237.10/rss/rss.aspx");
}
});
}
@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;
}
//Tarea As�ncrona para cargar un XML en segundo plano
private class CargarXmlTask extends AsyncTask<String,Integer,Boolean> {
protected Boolean doInBackground(String... params) {
RssParserSax saxparser =
new RssParserSax(params[0]);
noticias = saxparser.parse();
return true;
}
protected void onPostExecute(Boolean result) {
//Tratamos la lista de noticias
//Por ejemplo: escribimos los t�tulos en pantalla
txtResultado.setText("");
for(int i=0; i<noticias.size(); i++)
{
txtResultado.setText(
txtResultado.getText().toString() +
System.getProperty("line.separator") +
noticias.get(i).getTitulo());
}
}
}
}