Autore Topic: passare una textView a un Asynctask  (Letto 710 volte)

Offline fieraf

  • Utente junior
  • **
  • Post: 88
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 2
  • Sistema operativo:
    windows 7
passare una textView a un Asynctask
« il: 17 Ottobre 2012, 11:23:07 CEST »
0
ciao ragazzi.
Ho una app che fa uso di una classe ftp nella quale ho creo un Asynctask per gestire l'ftp.
vorrei pero passare al task la TextView dell'activity main che chiama la classe ftp per vedere i vari msg del ftp.

la classe ftp é
Codice (Java): [Seleziona]
package citelumga.android;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;


import android.os.AsyncTask;
import android.os.Environment;
import android.widget.TextView;

public class ftpconn  {
 

        public ftpconn() {
                // TODO Auto-generated constructor stub
                new Connection().execute();
       
        }
       

        private class Connection extends AsyncTask<Object,Object,Object> {
                @Override
                protected Object doInBackground(Object... arg) {      
                        //TextView ftp=(TextView)arg[0];
                        connect();
                    return null;
                }
            }
       
         private void connect() {
                boolean upload_ok,filefound;
                FileInputStream fis;
                        File Dir = new File(Environment.getExternalStorageDirectory(),"CitelumGA");
                        File[] files=Dir.listFiles();
                FTPClient client= new FTPClient();

                       try {

                                InetAddress server = InetAddress.getByName("xxxxx");
                                client.connect(server);
                                //ftptextview1.append("Connesso");
                                        //aperta la connessione al server procedo al login

                                        boolean loggato=client.login("xxxx", "xxxx");
                                        if(loggato==true)
                                        {
                                                FTPFile[] FtpFiles=client.listFiles();
                                                filefound=false;
                                                //apro il file contenuto nel path /sdcard come stream
                                                client.setFileType(FTP.BINARY_FILE_TYPE); // imposto il tipo di dati, da modificare a seconda dell'utilità

                                                for (File f : files) {
                                                        filefound=false;
                                                        if (f.isFile()) {
                                                         for (int i = 0; i < FtpFiles.length; i++)
                                                                {
                                                                        if (FtpFiles[i].getName().equals(f.getName())){
                                                                                filefound=true;
                                                                                break;
                                                                        }
                                                                }
                                                                if(!filefound){
                                                                         fis = new FileInputStream(f);
                                                                                upload_ok=client.storeFile(f.getName(),fis);

                                                                                fis.close();//procedo alla chiusura dello stream, infatti storeFile non chiude fis
                                                                                if(upload_ok==true)
                                                                                {
                                                                                }
                                                                                else{
                                                                                       
                                                                                }
                                                           }else{

                                                                }
                                                   }
                                          }    
                                        }else{

                                           
                                        }              
                                        client.logout();
                                        client.disconnect();
                                        if (client.logout()){
       

                                        }else{
               
                                        }

                                        //file.delete();
                                } catch (SocketException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }                
            }

}

potete aiutarmi?
sono nuovo degli AsyncTask

grazie

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:passare una textView a un Asynctask
« Risposta #1 il: 17 Ottobre 2012, 17:53:25 CEST »
0
Puoi passare la TextView nel costruttore di Connection e aggiornare il testo utilizzando onProgressUpdate.

AsyncTask | Android Developers