Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 27/04/13, 01:11:10
Avatar de aitor6381
aitor6381 aitor6381 no está en línea
Miembro del foro
Mensajes: 214
 
Fecha de registro: ene 2013
Mensajes: 214
Modelo de smartphone: Mi Mix 2s
Versión de ROM: Miui 10
Versión de Radio: 4G
Tu operador: Movistar
Mencionado: 2 comentarios
Tagged: 0 hilos
Post Error ProgressDialog?

Hola a todos, vereis, estoy haciendo una aplicacion (desarrollada a partir de un lector feed) que lee unos canales RSS y muestra los canales en la pantalla. Bien la aplicación va bastante sin bien sin problemas hasta que, como tardaba un rato en cargar, intenté poner un ProgressDialog, y ya llevo aquí sentado frente al PC un buen rato buscando la solución y no la encuentro. Os dejo el código:

PD: Perdón por lo desorganizado que está, ahora lo estoy montando y ya cuando esté listo y vaya bien lo perfilaré :P

Código:
package com.NGDSystem.ZimbaliCopasApp;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TabHost;
import com.NGDSystem.ZimbaliCopasApp.Noticia.*;
import com.slidingmenu.lib.SlidingMenu;



public class Two extends Activity {
	

	private ListView listvEventos;		
	private ListView listvNoticia;

	private  URL url;			
	private  URL url2;
	private ArrayList<Noticia> noticias;	
	private ArrayList<Noticia> noticias2;
	private String[] titulos;	
	private String[] titulos2;
	
	public void crearMenu() {
		SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
        menu.setMenu(R.layout.activity_menu);
        menu.setBehindOffset(1000);
        menu.setSelectorEnabled(true);
        menu.setSelectorDrawable(R.drawable.sel);
        menu.setShadowWidth(10);
        menu.setShadowDrawable(com.NGDSystem.ZimbaliCopasApp.R.drawable.shadow);
		
        String[] titleMenu = new String[]{"Ajustes","Licencia","Creditos","Contactar","Valorar"};
        ListView listvMenu;
        	 
        	ArrayAdapter<String> adapMenu = new ArrayAdapter<String>(this,com.NGDSystem.ZimbaliCopasApp.R.layout.listview, titleMenu);
        	listvMenu = (ListView)findViewById(R.id.listMenu);
        	listvMenu.setAdapter(adapMenu);
 
	}
	

    @SuppressLint({ "NewApi", "NewApi", "NewApi" })
	@Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);

        crearMenu();
        
        Resources res = getResources();
		 
		TabHost tabs=(TabHost)findViewById(android.R.id.tabhost);
		tabs.setup();
		 
		TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
		spec.setContent(R.id.tab1);
		spec.setIndicator("EVENTOS",res.getDrawable(android.R.drawable.ic_dialog_map));
		tabs.addTab(spec);
		 
		spec=tabs.newTabSpec("mitab2");
		spec.setContent(R.id.tab2);
		spec.setIndicator("NOTICIAS",res.getDrawable(android.R.drawable.ic_dialog_map));
		tabs.addTab(spec);
		 
		tabs.setCurrentTab(0);
        
        listvEventos = (ListView) findViewById(R.id.listvEventos);
        listvNoticia = (ListView) findViewById(R.id.listvNoticia);
        
        noticias = new ArrayList<Noticia>();
        noticias2 = new ArrayList<Noticia>();

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        
		//PROGRESSDIALOG (ERROR)
		
        final ProgressDialog progressDialog = new ProgressDialog(Two.this);
        progressDialog.setTitle("Por favor espere");
        progressDialog.show();
        
        
        new Thread() { 
            public void run() {      
        
        try {
        	url = new URL("http://ep00.epimg.net/rss/tags/ultimas_noticias.xml");
			url2 = new URL("http://ep00.epimg.net/rss/tags/noticias_mas_vistas.xml");
			leerDatos();
			leerDatos2();
			
		} catch (MalformedURLException e) {
			
			e.printStackTrace();
		}
        progressDialog.dismiss(); 
            } 
       }.start();
            
        //FIN PROGRESSDIALOG (ERROR)
        
        
        ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,titulos);
        ArrayAdapter<String> adaptador2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,titulos2);
        
        
        listvEventos.setAdapter(adaptador);
        listvNoticia.setAdapter(adaptador2);
        
       
        
        listvEventos.setOnItemClickListener(new OnItemClickListener() {

        	
			public void onItemClick(AdapterView<?> adaptador, View vista, int posicion,
					long arg3) {
				
				
				
				Intent intent = new Intent (Two.this, Three.class);
				intent.putExtra("EVENTO", noticias.get(posicion));
				startActivity(intent);
				
			}
		});
        
        listvNoticia.setOnItemClickListener(new OnItemClickListener() {

        	
			public void onItemClick(AdapterView<?> adaptador2, View vista, int posicion,
					long arg3) {
				
				
				
				Intent intent = new Intent (Two.this, Three.class);
				intent.putExtra("EVENTO", noticias2.get(posicion));
				startActivity(intent);
				
			}
		});
        
        
    }


    public void leerDatos(){

    	XmlPullParserFactory factory;
    	XmlPullParser xml;
    	int evento;		
    	
    	boolean title;	
    	boolean link;	
    	boolean pubDate;	
    	boolean contentEncoded;	
    	
    	ArrayList<String> titles;	
    	ArrayList<String> links;	
    	ArrayList<String> pubDates;	
    	ArrayList<String> contentEncodeds;	
    	
    	int contador;
    	
    	titles = new ArrayList<String>();
    	links = new ArrayList<String>();
    	pubDates = new ArrayList<String>();
    	contentEncodeds = new ArrayList<String>();

    	contador = 0;

    	title = false;
    	link = false;
    	pubDate = false;
    	contentEncoded = false;
    	
    	try {
    	

			factory = XmlPullParserFactory.newInstance();
			xml = factory.newPullParser();
			xml.setInput(url.openStream(),"UTF-8");

			evento = xml.getEventType();

			while (evento != XmlPullParser.END_DOCUMENT){
				
				switch (evento) {
				
				case XmlPullParser.START_TAG:
				
					
					if (xml.getName().equals("title")){

						contador++;

						if (contador > 2){
							
							title = true;

						}
					}
					
					
					if (xml.getName().equals("link")){
						
						link = true;
					}
					
					
					if (xml.getName().equals("pubDate")){
						
						pubDate = true;
					}
					
					
					if (xml.getName().equals("content:encoded")){
						
						contentEncoded = true;
					}
					
					break;
				
					
				case XmlPullParser.TEXT:
					
					if (title){
						
						titles.add(xml.getText());
					}
					
					if (link){
						
						links.add(xml.getText());
					}
					
					if (pubDate){
						
						pubDates.add(xml.getText());
					}
					
					if (contentEncoded){
						
						contentEncodeds.add(xml.getText());
					}
					
					
					break;
					
				case XmlPullParser.END_TAG:
					
					if (xml.getName().equals("title")){
						
						title = false;
					}
					
					
					if (xml.getName().equals("link")){
						
						link = false;
					}
					
					
					if (xml.getName().equals("pubDate")){
						
						pubDate = false;
					}
					
					
					if (xml.getName().equals("content:encoded")){
						
						contentEncoded = false;
					}
					
					break;

				}
				
				evento = xml.next();
			}

			titulos = new String[contentEncodeds.size()];

			for (int i = 0; i < contentEncodeds.size(); i++) {
				

				noticias.add(new Noticia(titles.get(i), contentEncodeds.get(i), pubDates.get(i), links.get(i)));

				titulos[i] = titles.get(i);
			}

			
			
			
		} catch (XmlPullParserException e) {

			e.printStackTrace();
		} catch (IOException e) {

			e.printStackTrace();
		}

    	
    }
    
    
public void leerDatos2(){

    	
    	XmlPullParserFactory factory2;
    	XmlPullParser xml2;		
    	int evento2;			
    	
    	boolean title2;	
    	boolean link2;		
    	boolean pubDate2;		
    	boolean contentEncoded2;		
    	
    	ArrayList<String> titles2;	
    	ArrayList<String> links2;	
    	ArrayList<String> pubDates2;	
    	ArrayList<String> contentEncodeds2;	
    	
    	int contador2;		

    	titles2 = new ArrayList<String>();
    	links2 = new ArrayList<String>();
    	pubDates2 = new ArrayList<String>();
    	contentEncodeds2 = new ArrayList<String>();
    	
    	
    	contador2 = 0;
    	
    	
    	title2 = false;
    	link2 = false;
    	pubDate2 = false;
    	contentEncoded2 = false;
    	
    	try {
    	
    		
			factory2 = XmlPullParserFactory.newInstance();
			xml2 = factory2.newPullParser();
			xml2.setInput(url2.openStream(),"UTF-8");
			
			
			evento2 = xml2.getEventType();
			
			
			while (evento2 != XmlPullParser.END_DOCUMENT){
				
				switch (evento2) {
				
				case XmlPullParser.START_TAG:
				
					
					if (xml2.getName().equals("title")){
						
						
						contador2++;
						
						
						if (contador2 > 2){
							
							title2 = true;

						}
					}
					
					
					if (xml2.getName().equals("link")){
						
						link2 = true;
					}
					
					
					if (xml2.getName().equals("pubDate")){
						
						pubDate2 = true;
					}
					
					
					if (xml2.getName().equals("content:encoded")){
						
						contentEncoded2 = true;
					}
					
					break;
				
					
				case XmlPullParser.TEXT:
					
					if (title2){
						
						titles2.add(xml2.getText());
					}
					
					if (link2){
						
						links2.add(xml2.getText());
					}
					
					if (pubDate2){
						
						pubDates2.add(xml2.getText());
					}
					
					if (contentEncoded2){
						
						contentEncodeds2.add(xml2.getText());
					}
					
					
					break;
					
				case XmlPullParser.END_TAG:
					
					if (xml2.getName().equals("title")){
						
						title2 = false;
					}
					
					
					if (xml2.getName().equals("link")){
						
						link2 = false;
					}
					
					
					if (xml2.getName().equals("pubDate")){
						
						pubDate2 = false;
					}
					
					
					if (xml2.getName().equals("content:encoded")){
						
						contentEncoded2 = false;
					}
					
					break;

				}
				
				evento2 = xml2.next();
			}
			
			titulos2 = new String[contentEncodeds2.size()];

			for (int i = 0; i < contentEncodeds2.size(); i++) {

				noticias2.add(new Noticia(titles2.get(i), contentEncodeds2.get(i), pubDates2.get(i), links2.get(i)));

				titulos2[i] = titles2.get(i);
			}

			
			
			
		} catch (XmlPullParserException e) {

			e.printStackTrace();
		} catch (IOException e) {

			e.printStackTrace();
		}

    }

}
PD: Esto es solo una actividad, hay más.
PD: No se si influye o si es de interés para conseguir la solución... cuando paso a esta activity, hasta que no cargan los datos no aparece nada, es decir, no se representan las tabs ni nada de eso.

Última edición por aitor6381 Día 27/04/13 a las 01:13:44
Responder Con Cita


Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 10:30:14 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007