Java 如何添加多个editview以提交到电子邮件意图

Java 如何添加多个editview以提交到电子邮件意图,java,android,email,android-intent,android-edittext,Java,Android,Email,Android Intent,Android Edittext,我试图有一个以上的编辑文本字段发送通过电子邮件的意图 这段代码会让我更明白我想要完成什么 public class EmailSupport extends Activity { Button buttonSend; String textTo; EditText textSubject; EditText nametext; EditText emailtext; EditText phonetext; EditText topictext; EditText

我试图有一个以上的编辑文本字段发送通过电子邮件的意图

这段代码会让我更明白我想要完成什么

public class EmailSupport extends Activity {

  Button buttonSend;
  String textTo;
  EditText textSubject;
  EditText nametext;
  EditText emailtext;
  EditText phonetext;
  EditText topictext;
  EditText detailstext;


@Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.email_form_to_support);

        public void onClick(View v) {
        String[] recipients = new String[]{"email@email.com", "email@email.com",};
          String subject = textSubject.getText().toString();
          String name = nametext.getText().toString();
          String emails = emailtext.getText().toString();
          String phone = phonetext.getText().toString();
          String topic = topictext.getText().toString();
          String details = detailstext.getText().toString();


          Intent email = new Intent(Intent.ACTION_SEND);
          email.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
          email.putExtra(Intent.EXTRA_SUBJECT, subject);
          email.putExtra(Intent.EXTRA_TEXT, name);
          email.putExtra(Intent.EXTRA_TEXT, emails);
          email.putExtra(Intent.EXTRA_TEXT, phone);
          email.putExtra(Intent.EXTRA_TEXT, topic);
          email.putExtra(Intent.EXTRA_TEXT, details);
我需要知道如何合并所有edittext输入,如下面的布局文件所示,以基本添加到电子邮件中的消息文本中。我的主题edittext是我的电子邮件主题,默认情况下,我也希望通过硬线发送电子邮件地址

将表格发送至support.xml

  <?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/name" />


    <EditText
        android:id="@+id/nametext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/email" />



    <EditText
        android:id="@+id/emailtext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:minLines="1"
        android:scrollbars="vertical" />

<TextView
    android:id="@+id/phone"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/phone" />


    <EditText
        android:id="@+id/phonetext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:maxLines="8"
        android:minLines="1"
        android:scrollbars="vertical" />

    <TextView
        android:id="@+id/topic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/topic" />


    <EditText
        android:id="@+id/topictext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:maxLines="3"
        android:minLines="1"
        android:scrollbars="vertical" />

    <TextView
        android:id="@+id/details"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/details" />


    <EditText
        android:id="@+id/detailstext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:maxLines="8"
        android:minLines="1"
        android:scrollbars="vertical" />


    <Button
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/submit" />

</LinearLayout>

}

我不确定您想要实现什么,但要改变这一点:

    public void onClick(View v) {
    String[] recipients = new String[]{"email@email.com", "",};
      String subject = textSubject.getText().toString();
      String message = nametext.getText().toString();
      String message = textMessage.getText().toString();
      String message = textMessage.getText().toString();
      String message = textMessage.getText().toString();
为此:

public void onClick(View v) {
    String[] recipients = new String[]{"email@email.com", "email2@email.com"};
    String subject = textSubject.getText().toString();
    String name = nametext.getText().toString();
    String email = emailtext.getText().toString();
    String phone = phonetext.getText().toString();
    String topics = topicstext.getText().toString();
    String details = deatilstext.getText().toString();

    // Do something with this Strings
}
这里,每个EditText都存储在自己的字符串中,供您随意使用

从评论中添加内容

简单地组合字符串,这是一种简单的方法:

String message = nametext.getText().toString();
message += "\n" + emailtext.getText().toString();
etc.
其中“\n”是类似于使用Enter的换行符。您可以在字段之间设置更有趣的格式,也许:

message += "\n\nEmail:\n" + emailtext.getText().toString();

但这取决于您。

您可以使用StringBuilder来撰写电子邮件正文。考虑使用以下代码:

public void onClick(View v) {

    StringBuilder emailBodyBuilder = new StringBuilder();

    emailBodyBuilder.append(textSubject.getText().toString());
    emailBodyBuilder.append("\n");
    emailBodyBuilder.append(nametext.getText().toString());
    emailBodyBuilder.append("\n");
    emailBodyBuilder.append(emailtext.getText().toString());
    emailBodyBuilder.append("\n");
    emailBodyBuilder.append(topicstext.getText().toString());
    emailBodyBuilder.append("\n");
    emailBodyBuilder.append(phonetext.getText().toString());
    emailBodyBuilder.append("\n");
    emailBodyBuilder.append(deatilstext.getText().toString());

    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"email1@domen.com", "email2@domen.com"});
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, textSubject.getText().toString());
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailBodyBuilder.toString());
    activity.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
活动
-是您需要存储以发送意图的活动引用。如果在
活动
中执行
onClick
处理,可以忽略此项,因此我的代码示例中的最后一行如下所示:

startActivity(Intent.createChooser(emailIntent, "Send mail..."));
如果在访问编辑文本视图时开始出现空指针异常,请确保已初始化它们。比如:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.email_form_to_support);
    textSubject = (EditText)findViewById(R.id.email);
    ...//and so forth

im jsut正在尝试发送一封包含姓名、电子邮件、电话、主题、详细信息和文本的邮件。因此,输出将是一个前缀电子邮件地址,主题将是一个字符串,然后消息将包括多个字符串,不仅仅是一个字符串,而是所有的名称、电子邮件等字符串。我用您推荐的内容更新了我的源代码,并添加了我认为可能有用的内容。参见
email.putExtra(Intent.EXTRA_TEXT,xxx)
Stuff我也在处理您推荐的内容,并将以结果回复。这很好,我唯一可以在第一部分应用一个\n方法:\n使其看起来像
String message=“\nName:\n”nametext.getText().toString()
当然,您需要在字符串之间添加
+
运算符:
String message=“\nName:\n”+nametext.getText().toString()
在使用
getText().toString()
之前是否初始化了
EditText
s?如此
按钮Send;字符串textTo;编辑文本主题;编辑文本名称文本;编辑文本电子邮件文本;编辑文本电话文本;编辑文本主题文本;编辑文本细节文本编号,如
TextView name TextView=(TextView)findviewbyd(R.id.nametext)和您的其他视图。不,我没有在我的java文件中看到。我想我不明白您所说的需要存储的活动是什么意思,这是指我的主要活动还是指此活动。当单击布局按钮时,此活动确实有一个onclick{
需要创建电子邮件并将其发送到android系统,然后用户单击他们想要的客户端。我已经用您推荐的内容更新了上面的源代码,android emulator现在说没有应用程序执行此操作,它将引用此活动。因此,如果您使用内部类创建单击处理程序(
buttonSend.setOnClickListener(新的OnClickListener(){
)-您可以通过使用以下内容获取对活动的引用:
YourActivityName.this.startActivity(Intent.createChooser(emailIntent,“发送邮件…”)
这样,您将发送电子邮件活动,Android将建议您选择合适的电子邮件client@JaisonBrooksDevelopmentandroid emulator没有安装电子邮件客户端。这就是它抱怨缺少客户端的原因。在真实设备上,它可以运行,作为替代,您可以在emulator中设置gmail帐户。这将自动自动启用本机电子邮件客户端。您可以通过转到“设置”->“帐户”->“添加帐户”来执行此操作
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.email_form_to_support);
    textSubject = (EditText)findViewById(R.id.email);
    ...//and so forth