Mailto de preferencias xml posible?
Estoy tratando de construir las preferencias para mi aplicación y esperaba hacer un "contacto con el desarrollador" zona donde cuando se hace clic en, se abrirá un correo electrónico dirigido a mí. ¿Es posible hacerlo desde el archivo xml solo o necesito hacer cosas en la clase principal?
Busqué aquí un poco pero no vi nada acerca de hacerlo desde XML, así que tal vez eso no es posible? Pensé que lanzaría esta pregunta allí.
- ¿Cómo obtengo las preferencias para trabajar en Android?
- Uso de la preferencia de lista en Android
- Crear preferencia de diseño mediante programación
- SharedPreferences Editor commit lleva mucho tiempo
- ¿Cómo mantener la configuración del idioma de la aplicación después de reiniciar el dispositivo?
¡Gracias!
EDIT: Así es como realmente lo conseguí trabajar para cualquier persona en el futuro buscando algún código:
import android.content.Intent; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; public class Prefs extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.prefs); Preference mailTo = (Preference) findPreference("mailTo"); mailTo.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { // Preferences Intent mailto = new Intent(Intent.ACTION_SEND); mailto.setType("message/rfc822") ; // use from live device mailto.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); mailto.putExtra(Intent.EXTRA_SUBJECT,"Subject Here"); mailto.putExtra(Intent.EXTRA_TEXT,"Body Here"); startActivity(Intent.createChooser(mailto, "Select email application.")); return true; } }); }
}
- Cómo utilizar PreferenceFragment?
- Almacenar cookie en las preferencias compartidas
- Actividad de preferencias de Android IllegalArgumentException: fragmento no válido para esta actividad
- Cómo establecer varios valores predeterminados en un MultiSelectListPreference?
- Las preferencias compartidas sólo se guardan por primera vez
- SharedPreference Cambios no reflejados en mi servicio de fondo de pantalla
- ¿Es la lectura / escritura preferencias una operación costosa?
- ¿Cómo puedo agregar por programación EditTextPreferences a mi PreferenceFragment?
No es posible desde xml. Sin embargo, no es un montón de trabajo debido a la forma en que funciona el android. Lo único que hay que hacer es enviar una intención que notifique al sistema que desea enviar un correo electrónico, con los detalles que proporcione. Las aplicaciones que sean capaces de hacer esto responderán a esta intención y se encargarán del resto para usted. Consulte http://snipplr.com/view/19973/send-email-from-android-using-intent/
Puede hacerlo directamente desde las preferencias:
<Preference android:key="contactDevKey" android:title="Contact developer" android:summary="Tell me all about your problems"> <intent android:action="android.intent.action.VIEW" android:data="@string/contact_developer_uri"/> </Preference>
Donde @string/contact_developer_uri
es:
<string name="contact_developer_uri">mailto:[email protected]</string>
La limitación no es un sujeto / cuerpo predefinido que sea posible utilizando el método Java, junto con extras. La adición de s extra
a <intent>
s es compatible desde 4.0 Ice Cream Sandwich gracias a este commit (ver etiquetas commit). Es un efecto secundario de permitir extras para fragmentos. Así que usted puede proporcionar una plantilla como Andrew sugirió en los comentarios:
<intent android:action="android.intent.action.VIEW" android:data="@string/contact_developer_uri"> <extra android:name="android.intent.extra.TEXT" android:value="What can I help you with?" /> <extra android:name="android.intent.extra.SUBJECT" android:value="Feedback about World Changing App" /> </intent>
Se recomienda el uso de referencias de recursos, pero no es necesario para los data
y el value
s.
Lamentablemente, no puedes usar Intent.ACTION_SEND
esta manera, porque EXTRA_EMAIL
necesita ser una String[]
y eso no es compatible como <extra android:value=
.
- ¿Deshabilitar el zoom pellizco en WebView?
- Cómo eliminar una dependencia de mi proyecto android en eclipse.