Autore Topic: Inviare email da pagina preference  (Letto 578 volte)

Offline ginoz

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows
Inviare email da pagina preference
« il: 01 Settembre 2011, 09:53:22 CEST »
0
Nella pagina delle impostazioni della mia applicazione vorrei dare la possibilità all'utente di inviarmi una email.

Per adesso sono arrivato al seguente codice da inserire nell'XML delle preferenze. E' ok? Cosa manca adesso?

Codice (XML): [Seleziona]
<PreferenceCategory  android:title="About">

     <PreferenceScreen
           android:title="Support"
           android:summary="Email developer">
                <intent
                android:action="android.intent.action.VIEW"
                android:data="mailto:aaaa@bbbbb.it"  />
    </PreferenceScreen>

</PreferenceCategory>

Offline crbin1

  • Utente junior
  • **
  • Post: 61
  • Respect: +6
    • labeltodo
    • Mostra profilo
    • Do Androids Dream of Electric Sheep?
  • Dispositivo Android:
    Galaxy Nexus
Re:Inviare email da pagina preference
« Risposta #1 il: 02 Settembre 2011, 11:38:15 CEST »
0
Io ho risolto con un listener

Codice (Java): [Seleziona]
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.widget.Toast;

public class Prefs extends PreferenceActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.prefs);
         Preference prefMail = (Preference) findPreference("prefMail");
         prefMail.setOnPreferenceClickListener(new OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference prefs) {        
               Intent i = new Intent(Intent.ACTION_SEND);
               i.setType("message/plain");
               i.putExtra(Intent.EXTRA_EMAIL, new String[]{"xxx@gmail.com"});
               i.putExtra(Intent.EXTRA_SUBJECT,"Subject");
               i.putExtra(Intent.EXTRA_TEXT,"Body tect");
               try {
                  startActivity(Intent.createChooser(i, "Send mail"));
               } catch (android.content.ActivityNotFoundException ex) {
                  Toast.makeText(Prefs.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
               }
               return true;
            }
         });
   }
}