从首选项XML的Mailto可能?

我正在尝试构build出我的应用程序的偏好,我希望能做一个“联系开发人员”的区域,当点击它的时候,会打开一个电子邮件给我。 这是可能的单独的XML文件做,或者我需要做的东西在主类?

我在这里search了一下,但没有看到从XML做到这一点,所以也许这是不可能的? 以为我会把这个问题摆在那里。

谢谢!

编辑:这是我真正得到它在任何人在未来寻找一些代码工作:

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[]{"test@gmail.com"}); mailto.putExtra(Intent.EXTRA_SUBJECT,"Subject Here"); mailto.putExtra(Intent.EXTRA_TEXT,"Body Here"); startActivity(Intent.createChooser(mailto, "Select email application.")); return true; } }); } 

}

Solutions Collecting From Web of "从首选项XML的Mailto可能?"

这是不可能的从XML。 然而,由于android的工作方式,这并不是很多工作。 唯一需要做的是发送一个意图,通知你想要发送一个电子邮件系统,你提供的细节。 能够做到这一点的应用程序将响应这个意图,并为您处理剩下的事情。 请参阅http://snipplr.com/view/19973/send-email-from-android-using-intent/

你可以直接从喜好中做到这一点:

 <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> 

其中@string/contact_developer_uri是:

 <string name="contact_developer_uri">mailto:my@email.address</string> 

限制是没有预定义的主体/正文可能使用Java方法和额外的。 自从4.0冰淇淋三明治(感谢提交标签)支持添加extra s <intent> s。 这是允许片段的额外副作用。 所以你可以提供一个模板, Andrew在评论中build议:

 <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> 

鼓励使用资源引用,但对于datavalue都不是必需的。

可悲的是你不能这样使用Intent.ACTION_SEND ,因为EXTRA_EMAIL需要是一个String[] ,并且不支持<extra android:value=