Autore Topic: [Problema] ListView con click dell'email, non mi inserisce il destinatario.  (Letto 398 volte)

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Salve a tutti ragazzi ho seguito questa guida per realizzare la listview http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-arrayadapter/,alla fine vi spiego il mio problema, ecco il mio codice:

CustomListViewAdapter
Codice (Java): [Seleziona]
package com.sorrentinoandrea.adapters;

import java.util.List;
import com.sorrentinoandrea.bean.Email;
import com.sorrentinoandrea.itipacinottimobile.R;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomListViewAdapter extends ArrayAdapter<Email> {
        Context context;
         
    public CustomListViewAdapter(Context context, int resourceId,
            List<Email> items) {
        super(context, resourceId, items);
        this.context = context;
    }
    private class ViewHolder {
        ImageView imm;
        TextView prog;
        TextView mail;
    }
   
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        Email em = getItem(position);
 
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.list_element, null);
            holder = new ViewHolder();
            holder.prog = (TextView) convertView.findViewById(R.id.prog);
            holder.mail = (TextView) convertView.findViewById(R.id.email_to);
            holder.imm = (ImageView) convertView.findViewById(R.id.imagelist);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
 
        holder.prog.setText(em.getProg());
        holder.mail.setText(em.getMail());
        holder.imm.setImageResource(em.getImm());
 
        return convertView;
    }

}

un bean che ho chiamato Email
Codice (Java): [Seleziona]
package com.sorrentinoandrea.bean;

public class Email {
    private int imm;
    private String prog;
    private String mail;
 
    public Email(int imm, String prog, String mail) {
        this.imm = imm;
        this.prog = prog;
        this.mail = mail;
    }
    public int getImm() {
        return imm;
    }
    public void setImm(int imm) {
        this.imm = imm;
    }
    public String getProg() {
        return prog;
    }
    public void setProg(String prog) {
        this.prog = prog;
    }
    public String getMail() {
        return mail;
    }
    public void setMail(String mail) {
        this.mail = mail;
    }
}

ecco la mia activity"principale" che ho chiamato Contact
Codice (Java): [Seleziona]
package com.sorrentinoandrea.itipacinottimobile;


import java.util.ArrayList;
import java.util.List;
import com.sorrentinoandrea.adapters.CustomListViewAdapter;
import com.sorrentinoandrea.bean.Email;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;





public class Contact extends Activity implements OnItemClickListener  {
        public static final String[] progs = new String[] { "Posta Certificata:",
        "Posta Istituzionale:", "Per informazioni:", "Al Dirigente Scolastico:", "Al DSGA:",
        "Al  Resp. dell'Uff. Tecnico:","Al   Web master:","Patente Europea ECDL Core:","Patente ECDL Advanced:",
        "Microsoft Office Specialist:","Biblioteca:","Patente EcdlCAD:","Autodesk:"};
       
        public static final String[] mails = new String[] {"satf04000d@pec.postascuole.it ",
        "satf04000d@istruzione.it", "info@itipacinotti.it","dirigentescolastico@itipacinotti.it",
        "amministrativo@itipacinotti.it","ufficiotecnico@itipacinotti.it",
        "webmaster@itipacinotti.it","ecdlcore@itipacinotti.it","ecdladvanced@itipacinotti.it",
        "mos@itipacinotti.it","biblioteca@itipacinotti.it","ecdlcad@itipacinotti.it","autodesk@itipacinotti.it"};
       
        public static final Integer[] imms = { R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,
                R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,
                R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email};
       
        ListView listView;
    List<Email> items;
   
        @Override
        public void onCreate(Bundle bundle){
                super.onCreate(bundle);
                setContentView(R.layout.contact_list);
                items = new ArrayList<Email>();
        for (int i = 0; i < progs.length; i++) {
            Email item = new Email(imms[i], progs[i], mails[i]);
            items.add(item);
        }
        listView = (ListView) findViewById(R.id.list);
        CustomListViewAdapter adapter = new CustomListViewAdapter(this,
                R.layout.list_element, items);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(this);
        }
        @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
                Intent email = new Intent(android.content.Intent.ACTION_SEND);
                email.putExtra(android.content.Intent.EXTRA_EMAIL, mails[position]);
                email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                email.setType("text/plain");
                startActivity(Intent.createChooser(email, "Invia l'email.."));
                finish();
    }
}      

Il mio problema è che quando eseguo il programma, mi fà scegliere con quale programma inviare l'email, dopo che lo seleziono mi si apre per es. Gmail e nel campo "A:" non mi appare il contenuto di "mails[position]" (cioè il destinatario dell'email)
Ragazzi confido in Voi.Non sò cosa ho sbagliato :/... Grazie della pazienza.
« Ultima modifica: 14 Marzo 2014, 18:45:11 CET da Hildian »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:[Problema] ListView con click dell'email, non mi inserisce il mittente.
« Risposta #1 il: 14 Marzo 2014, 18:29:04 CET »
0
Per curiosità: se al posto di mails metti un indirizzo fisso, funziona?

Codice (Java): [Seleziona]
email.putExtra(android.content.Intent.EXTRA_EMAIL,"pippo@topolinia.com");

Edit: e sempre per curiosità, prova anche a passare un array:

Codice (Java): [Seleziona]
email.putExtra(android.content.Intent.EXTRA_EMAIL,mails);
« Ultima modifica: 14 Marzo 2014, 18:31:36 CET da bradipao »
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:[Problema] ListView con click dell'email, non mi inserisce il mittente.
« Risposta #2 il: 14 Marzo 2014, 18:30:21 CET »
0
Si, se scrivo al posto di mail[position] mails nella casella "A:" mi appaiono tutti gli indirizzi che ho caricato prima nel vettore mails

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:[Problema] ListView con click dell'email, non mi inserisce il mittente.
« Risposta #3 il: 14 Marzo 2014, 18:32:43 CET »
0
Si, se scrivo al posto di mail[position] mails nella casella "A:" mi appaiono tutti gli indirizzi che ho caricato prima nel vettore mails

Ah bene  :-)  Allora è facile, basta che passi un array String[] con un solo elemento al suo interno.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:[Problema] ListView con click dell'email, non mi inserisce il mittente.
« Risposta #4 il: 14 Marzo 2014, 18:34:53 CET »
0
Scusa la mia ignoranza ma potresti indicarmi il codice?

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:[Problema] ListView con click dell\'email, non mi inserisce il mittente.
« Risposta #5 il: 14 Marzo 2014, 18:38:49 CET »
0

Ecco cosa mi esce quando clicco un item della listview, clicco su ad es.  su gmail e il campo "A:" vuoto >.<

Post unito: 15 Marzo 2014, 17:05:31 CET
Grazie a tutti per l'aiuto. sono riuscito a risolvere anche se con molto codice ma alla fine ce l'ho fatta ...
Codice (Java): [Seleziona]
package com.sorrentinoandrea.itipacinottimobile;


import java.util.ArrayList;
import java.util.List;
import com.sorrentinoandrea.adapters.CustomListViewAdapter;
import com.sorrentinoandrea.bean.Email;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;




public class Contact extends Activity implements OnItemClickListener  {
        public static final String[] progs = new String[] { "Posta Certificata:",
        "Posta Istituzionale:", "Per informazioni:", "Al Dirigente Scolastico:", "Al DSGA:",
        "Al  Resp. dell'Uff. Tecnico:","Al   Web master:","Patente Europea ECDL Core:","Patente ECDL Advanced:",
        "Microsoft Office Specialist:","Biblioteca:","Patente EcdlCAD:","Autodesk:"};
       
        public static final String[] mails = new String[] {"satf04000d@pec.postascuole.it",
        "satf04000d@istruzione.it", "info@itipacinotti.it","dirigentescolastico@itipacinotti.it",
        "amministrativo@itipacinotti.it","ufficiotecnico@itipacinotti.it",
        "webmaster@itipacinotti.it","ecdlcore@itipacinotti.it","ecdladvanced@itipacinotti.it",
        "mos@itipacinotti.it","biblioteca@itipacinotti.it","ecdlcad@itipacinotti.it","autodesk@itipacinotti.it"};
       
        public static final Integer[] imms = { R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,
                R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,
                R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email,R.drawable.ico_email};
       
        ListView listView;
    List<Email> items;
   
        @Override
        public void onCreate(Bundle bundle){
                super.onCreate(bundle);
                setContentView(R.layout.contact_list);
                items = new ArrayList<Email>();
        for (int i = 0; i < progs.length; i++) {
            Email item = new Email(imms[i], progs[i], mails[i]);
            items.add(item);
        }
        listView = (ListView) findViewById(R.id.list);
        CustomListViewAdapter adapter = new CustomListViewAdapter(this,
                R.layout.list_element, items);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(this);
        }

        @Override
        public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
                switch (position){
                case 0 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"satf04000d@pec.postascuole.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 1 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"satf04000d@istruzione.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 2 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"info@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 3 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"dirigentescolastico@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 4 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"amministrativo@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 5 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"ufficiotecnico@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 6 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"webmaster@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 7 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"ecdlcore@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 8 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"ecdladvanced@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 9 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"mos@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 10 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"biblioteca@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 11 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"ecdlcad@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                case 12 : {
                        Intent email = new Intent(android.content.Intent.ACTION_SEND);
                        String[] recipients = new String[]{"autodesk@itipacinotti.it", "",};
                        email.setType("text/plain");
                        email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients );
                        email.putExtra(android.content.Intent.EXTRA_SUBJECT, "Oggetto");
                        email.putExtra(android.content.Intent.EXTRA_TEXT, "Scrivi il messaggio..");
                        email.setType ("message/rfc822");
                        startActivity(Intent.createChooser(email, "Invia l'email.."));
                }break;
                }
        }
       
}      
« Ultima modifica: 15 Marzo 2014, 17:05:31 CET da Hildian, Reason: Merged DoublePost »