我正在尝试构建我的应用程序的首选项,我希望能够“联系开发人员”区域,在点击时,它会打开一封指向我的电子邮件。这可以单独从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;
}
});
}
}
答案 0 :(得分:31)
您可以直接从偏好设置中执行此操作:
<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
添加<intent>
s感谢this commit三明治(请参阅提交标记)。这是为片段添加额外内容的副作用。因此,您可以在评论中提供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=
。
答案 1 :(得分:0)
xml无法实现。然而,由于android的工作方式,这不是很多工作。唯一需要做的就是发送一个意图,通知您要发送电子邮件的系统,以及您提供的详细信息。能够执行此操作的应用程序将响应此意图并为您处理剩余的事情。请参阅http://snipplr.com/view/19973/send-email-from-android-using-intent/