作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试为我的应用程序构建首选项,我希望创建一个“联系开发人员”区域,单击该区域时,它会打开一封指向我的电子邮件。这可以单独从 xml 文件中完成,还是我需要在主类中做一些事情?
我在这里搜索了一下,但没有看到任何关于从 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;
}
});
}
}
最佳答案
您可以直接从偏好设置:
<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 方法以及附加功能。 添加 extra
转至 <intent>
由于 this commit,从 4.0 Ice Cream Sandwich 开始支持 s (见提交标签)。这是允许附加 fragment 的副作用。所以你可以提供一个模板为Andrew建议在评论中:
<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>
鼓励使用资源引用,但对于 data
两者都不是必需的和 value
秒。
很遗憾你不能使用 Intent.ACTION_SEND
这样,因为 EXTRA_EMAIL
需要是 String[]
不支持 <extra android:value=
.
关于android - 来自首选项 xml 的 Mailto 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319364/
我是一名优秀的程序员,十分优秀!