2016-09-26 78 views
0

我嘗試從幾個EditText s發送電子郵件併爲其取文本。但是當我點擊按鈕時,我只看到電子郵件正文中的最後一個EditTextAction_Send_Multiple in Intent does not work

它有什麼不對?

private View.OnClickListener myListener = new View.OnClickListener() { 
    public void onClick(View v) { 
     Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
     emailIntent.setType("message/rfc822"); //specifies message for email app. 
     emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); 
     emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Заявка на замер"); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Имя клиента: " + getOrderName()); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Номер телефона : " + getOrderPhone()); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Адрес : " + getOrderAdress()); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Дата : " + getOrderDate()); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Удобное время : " + getOrderTime()); 
     startActivity(Intent.createChooser(emailIntent, "Выберите почтовый сервис")); 
    } 
}; 

至於結果在電子郵件正文我只剩下最後一個看到:

Удобное время 
+0

檢查它。 –

+0

每一行都覆蓋以前,用整個郵件主體構建一個'String'並設置一次... – snachmsm

回答

1

嘗試像下面,它會爲你工作

通過合併在一個字符串就可以實現你到底想要什麼

private View.OnClickListener myListener = new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
       emailIntent.setType("message/rfc822"); //specifies message for email app. 
       emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); 
       emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Заявка на замер"); 


       String body ="Имя клиента: " + getOrderName()+"\n"+ 
          "Номер телефона : " + getOrderPhone()+"\n"+ 
          "Адрес : " + getOrderAdress()+"\n"+ 
          "Дата : " + getOrderDate()+"\n"+ 
          "Удобное время : " + getOrderTime(); 
       emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body); 
       startActivity(Intent.createChooser(emailIntent, "Выберите почтовый сервис")); 


      } 
    }; 

快樂編碼!

+0

它的工作!非常感謝你!!! –

1

在您的情況下,您需要使用StringBuilder,因爲每次在爲其設置新值時都會替換EXTRA_TEXT

你可能會這樣做。

StringBuilder sb; 

sb.append("Имя клиента: " + getOrderName()); 
sb.append('\n'); 
sb.append("Номер телефона : " + getOrderPhone()); 
sb.append('\n'); 
sb.append("Адрес : " + getOrderAdress()); 
sb.append('\n'); 
// ... Others 

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,sb); 
+0

它也是工作變體!謝謝! –

1

您試圖發送的額外文本是一個關鍵標識符。所以,每次放置時都會被替換。這就是爲什麼只有最後一個putExtra被添加的原因。

嘗試連接您的消息字符串,然後將其添加到putExtra。

0

可能會有所幫助。 創建一個字符串「email_body」,並將全身電子郵件部分放入其中,然後將其傳入Intent。

String email_body="Имя клиента: "+getOrderName()+"\nНомер телефона : "+getOrderPhone()+.......+ getOrderTime(); 

然後在您的點擊偵聽器中執行此操作。

Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
    emailIntent.setType("message/rfc822"); //specifies message for email app. 
    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); 
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Заявка на замер"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,email_body); 
    startActivity(Intent.createChooser(emailIntent, "Выберите почтовый сервис"));