[RISOLTO]Gestire alertDialog in AsyncTask

di il
2 risposte

[RISOLTO]Gestire alertDialog in AsyncTask

Salve amici ho un problema relativo alla gestione della visualizzazione di un messaggio (parsato da internet) dell'alertDialog, nell'asyncTask.
In pratica io ho nella mia activity una listview popolata.
Premendo un item di questa lista mi compare l'alertDialog con un messaggio dinamico al proprio interno. Per gestire il thread in maniera asincrona voglio utilizzare l'asyncTask.
Siccome ho diversi dubbi, volevo chiedervi un paio di cose in modo da risolvere questo problema .
Prima di tutto, il metodo
  date1.setOnItemClickListener(new OnItemClickListener()
che gestisce il click sulla mia listview (date1), resta fuori dall'asyncTask oppure va messo all'interno? Nel caso andasse vesso all'interno dell'asyncTask, è corretto metterlo nel metodo onPostExecute() ?

2 Risposte

  • Re: [RISOLTO]Gestire alertDialog in AsyncTask

    Ho provato a creare una classe che estende l'asyncTask in questo modo:
    //QUI CREO IL MIO ASYNCTASK RELATIVO AL THREAD CHE GESTISCE L'ALERT DIALOG
    	private class Farmacia extends AsyncTask<Void, Void, String>
        {
        	// lista delle farmacie di turno
    		ArrayList<String> farmacie;
    
        	Document doc;
        	protected void onPreExecute()
        	{
        		super.onPreExecute();
        		
        		//prima di eseguire il parsing inizializzo l' arraylist
                farmacie = new ArrayList<String>();
    
        		adb = new AlertDialog.Builder(Seconda.this);
        		adb.setTitle("Farmacia di turno");
        		adb.setMessage("Sto caricando...");
        		adb.setPositiveButton("OK", null);
        		adb.show();
        	}
        	
    		@Override
    		protected String doInBackground(Void... arg0) {
    			// TODO Auto-generated method stub
    			
    			try {
    				doc = Jsoup.parse(new java.net.URL(url).openStream(), "ISO-8859-1", url);
    				Elements tbody = doc.getElementsByClass("sTestoDettaglio");
    	               String[] names=tbody.text().split("Farmacia");
    	                  
    	               // ogni mese quando si aggiorna il sito, cambiare l'indice del ciclo for
    	               for(int i = 1; i <= 7; i++)
    	               {
    	            	 
    	            	  String testo = "Farmacia " + names[i];
    	            	  int posizione = testo.indexOf(".");
    	            	  
    	            	  testo = testo.substring(0, posizione + 1);
    	                  farmacie.add(testo);		// in farmacie ho tutti i nomi delle farmacie di turno
    	               }
    			} catch (MalformedURLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    					return null;
    		}
    		
    		protected void onPostExecute(String result)
    		{
    			
    		      
    		}	
        }  
    Però non so cosa dover scrivere nel metodo onPostExecute e non so come gestire l'esecuzione di questo asyncTask nel metodo
    setOnItemClickListener(new OnItemClickListener()
            {
            	
            public void onItemClick(AdapterView<?> arg0, View v, int position, long id)
            {
    relativo al click dell'elemento della listview che poi va a richiamare l'alertDialog.
    Mi aiutate per favore?
  • Re: [RISOLTO]Gestire alertDialog in AsyncTask

    Ho risolto il mio problema finalmente!!!
    comunque chi fosse interessato alla risoluzione può mandarmi un messaggio così gli mostro il codice
Devi accedere o registrarti per scrivere nel forum
2 risposte