Autore Topic: ProgressDialog su classe esterna oncreate  (Letto 636 volte)

Offline NicolaCirotto

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Play Store ID:
    Nicola Cirotto
ProgressDialog su classe esterna oncreate
« il: 23 Maggio 2011, 21:53:10 CEST »
0
Ciao a tutti sono nuovo...
Ho un problemino che per voi sicuramente è roba da niente ma io non mi ci raccapezzo.

devo popolare una listview e ho creato una classe chiamata Utenti dove metterò tutte le funzionalità che mi serviranno per gli utenti.
Prima cosa da fare è caricare gli utenti. (è un caricamento di prova quindi lo faccio a mano al momento)

Codice (Java): [Seleziona]
super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Utenti _Utenti = new Utenti();
        lv_utenti = (ListView) findViewById(R.id.elencoUtenti);        
        lv_utenti.setAdapter(_Utenti.CaricaElencoUtentiListView());      
        lv_utenti.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
                public void onItemClick(AdapterView<?> adapter, View view, int position, long arg)
                {                                              
                        //mio codice                           
                }
                });


Nella classe Utenti ho:
Codice (Java): [Seleziona]
        public SimpleAdapter CaricaElencoUtentiListView()
        {

                ArrayList<ElencoUtenti> ElencoUtenti = new ArrayList<ElencoUtenti>();
                ElencoUtenti.add(new ElencoUtenti(5, "Nicola", "Cirotto", R.drawable.icon));
                ElencoUtenti.add(new ElencoUtenti(12, "Nicola2", "Cirotto2", R.drawable.icon));
               
                ArrayList<HashMap<String, Object>> dati = new ArrayList<HashMap<String,Object>>();
        for(int i=0;i<50;i++){
                HashMap<String,Object> personMap=new HashMap<String, Object>();//creiamo una mappa di valori
                personMap.put("pk", i);
                personMap.put("image", R.drawable.icon);                       
                personMap.put("name", "Nicola" );
                personMap.put("surname", "Cirotto (" + Integer.toString(i) + ")");
                dati.add(personMap);  //aggiungiamo la mappa di valori alla sorgente dati
        }
       
        String[] from={"pk", "image", "name","surname"}; //dai valori contenuti in queste chiavi
        int[] to={R.id.pk, R.id.personImage, R.id.personName, R.id.personSurname};//agli id dei layout
       
        //costruzione dell adapter
        SimpleAdapter adapter = new SimpleAdapter(
                        Incontri.context,
                        dati,//sorgente dati
                        R.layout.listitem, //layout contenente gli id di "to"
                        from,
                        to);
        return adapter;        
        }      

Come faccio a mettere una ProgressDialog quando mi carica i dati?
Ho provato con AsyncTask ma non ci sono riuscito. Ora vi ho postato il codice senza tentatvio di ProgressDialog...

Aspetto vostri lumi

Grazie milleeee per l'aiuto.
« Ultima modifica: 24 Maggio 2011, 11:32:22 CEST da NicolaCirotto »

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:ProgressDialog su classe esterna oncreate
« Risposta #1 il: 24 Maggio 2011, 11:12:55 CEST »
0
Visto che quello che dici si fa proprio con l'AsyncTask spiegaci cosa non sei riuscito a fare. ;)

P.S.: potresti modificare il tuo post inserendo il codice tra i tag "code=java" e "/code" invece che i semplici "code". Grazie.

Offline NicolaCirotto

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Play Store ID:
    Nicola Cirotto
Re:ProgressDialog su classe esterna oncreate
« Risposta #2 il: 24 Maggio 2011, 11:31:41 CEST »
0
Visto che quello che dici si fa proprio con l'AsyncTask spiegaci cosa non sei riuscito a fare. ;)

P.S.: potresti modificare il tuo post inserendo il codice tra i tag "code=java" e "/code" invece che i semplici "code". Grazie.


Ottimo a sapersi... sai sono nuovo....

Mi riscrivo l'AsyncTask e lo posto.

ps. ho installato la tua app sul credito della Tre... ottima.... complimenti

Offline NicolaCirotto

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Play Store ID:
    Nicola Cirotto
Re:ProgressDialog su classe esterna oncreate
« Risposta #3 il: 25 Maggio 2011, 21:47:15 CEST »
0
Alla fine ho risolto ma non ho sfruttato la classe esterna.

Posto il codice magari serve a qualcuno:

Codice (Java): [Seleziona]
public class LayoutCerca extends Activity
{
        static Context context;
        static int selected_pk;
        static ListView lv_utenti;

        @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cerca);
        context = this;
        new CaricaElencoUtentiListView().execute();
    }
   
        private class CaricaElencoUtentiListView extends AsyncTask<Void, Void, Void>
        {
                private ProgressDialog MyProgressBar;
                private ArrayList<HashMap<String, Object>> dati = new ArrayList<HashMap<String,Object>>();
                protected void onPreExecute()
                {
                        MyProgressBar = ProgressDialog.show(LayoutCerca.context, "Attendere...", "Caricamento dati in corso...", true);
                        ArrayList<ElencoUtenti> ElencoUtenti = new ArrayList<ElencoUtenti>();
                        ElencoUtenti.add(new ElencoUtenti(5, "Nicola", "Cirotto", R.drawable.icon));
                        ElencoUtenti.add(new ElencoUtenti(12, "Nicola2", "Cirotto2", R.drawable.icon));
                }

                protected Void doInBackground(Void... unused)
                {
                for(int i=0;i<100;i++)
                {
                        HashMap<String,Object> personMap=new HashMap<String, Object>();//creiamo una mappa di valori
                        personMap.put("pk", i);
                        personMap.put("image", R.drawable.icon);                       
                        personMap.put("name", "Nicola" );
                        personMap.put("surname", "Cirotto (" + Integer.toString(i) + ")");
                                dati.add(personMap);  //aggiungiamo la mappa di valori alla sorgente dati
                }
               
                        return null;
                }

                protected void onPostExecute(Void unused)
                {
                String[] from={"pk", "image", "name","surname"}; //dai valori contenuti in queste chiavi
                int[] to={R.id.pk, R.id.personImage, R.id.personName, R.id.personSurname};//agli id dei layout
               
                //costruzione dell adapter
                SimpleAdapter adapter = new SimpleAdapter(
                                Incontri.context,
                                dati,//sorgente dati
                                R.layout.cerca_listitem, //layout contenente gli id di "to"
                                from,
                                to);                   
                    //utilizzo dell'adapter
                    lv_utenti = (ListView) findViewById(R.id.elencoUtenti);        
                    lv_utenti.setAdapter(adapter);      
                    lv_utenti.setOnItemClickListener(new AdapterView.OnItemClickListener()
                    {
                        public void onItemClick(AdapterView<?> adapter, View view, int position, long arg)
                        {                                              
                                selected_pk = Integer.parseInt(((HashMap)adapter.getItemAtPosition(position)).get("pk").toString());
                                        Intent wordIntent = new Intent(getApplicationContext(), InfoUtente.class);                                                                     
                                        startActivity(wordIntent);                             
                        }
                        });
                       
                        MyProgressBar.dismiss();
                }
        }
}