2016-07-28 66 views
2
Intent share = new Intent(Intent.ACTION_SEND); 
Uri requestUrl = Uri.parse(url); 
String pContent = requestUrl.toString().split("share://")[1]; 
String pasteData = pContent+""; 

share.setAction(Intent.ACTION_SEND); 
share.setType("message/rfc822"); 
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
//String septline = System.getProperty("line.separator"); 
//pasteData= pasteData.replaceAll("<br />", "\n"); 
Toast toast=Toast.makeText(getApplicationContext(),pasteData, Toast.LENGTH_LONG); 
toast.setMargin(50,50); 
toast.show(); 
String [] parts = pasteData.split("<br />"); 
for (String part : parts){ 
     share.putExtra(Intent.EXTRA_TEXT, part); 
} 
startActivity(Intent.createChooser(share, "Share On")); 

我想for循環應該寫爲每個零件share.putextra,但這裏putextra屬於人只有一次與最後部分的價值只有putExtra在意圖使用循環

ANS shuld是這樣

share.putExtra(Intent.EXTRA_TEXT, part1); 
share.putExtra(Intent.EXTRA_TEXT, part2); 
share.putExtra(Intent.EXTRA_TEXT, part3); 
+0

其實,主要的問題是,我想分享三行(第一行\ n第二行\ n第三行)在whatsapp遠足郵件文本等;但newLine不支持這個,爲什麼我想分享這些完整的句子,而不是單行,但作爲一個不同的行 – Shubham

回答

3

你做錯了,在Intent中每個鍵都是唯一的,所以如果你嘗試使用 來放置任何具有相同鍵的數據,它將被覆蓋。

所以在你的代碼中,當你運行一個循環,並且Intent鍵在循環中是相同的,所以它被覆蓋,並且你只獲得最後一個值。

要解決此問題,請嘗試使用不同的鍵輸入數據。

欲瞭解更多信息,請訪問Android developer page

0

嘗試這樣

Intent share = new Intent(Intent.ACTION_SEND); 
Uri requestUrl = Uri.parse(url); 
String pContent = requestUrl.toString().split("share://")[1]; 
String pasteData = pContent+""; 

share.setAction(Intent.ACTION_SEND); 
share.setType("message/rfc822"); 
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
//String septline = System.getProperty("line.separator"); 
//pasteData= pasteData.replaceAll("<br />", "\n"); 
Toast toast=Toast.makeText(getApplicationContext(),pasteData, Toast.LENGTH_LONG); 
toast.setMargin(50,50); 
toast.show(); 
String [] parts = pasteData.split("<br />"); 
StringBuilder sb = new StringBuilder(); 
for (String part : parts){ 
     sb.append(part); 
} 

startActivity(Intent.createChooser(share, "Share On")); 
+0

他沒有發送數據到他的其他活動,他想分享數據使用意圖,任何應用程序是能夠處理意圖類型「message/rfc822」 –

0

你必須一次設置,您可以使用字符串建設者打破所有的數據/ N,然後爲您提供一次意圖。

StringBuilder sb = new StringBuilder(); 
String [] parts = pasteData.split("<br />"); 
for (String part : parts){ 
     sb.append(part); 
} 
share.putExtra(Intent.EXTRA_TEXT, sb.toString()); 
0

是的,我得到了ANS,感謝大家的支持和想法 這個我們如何才能增加新的生產線,以內容(電子郵件,加息,短信,羣聊,WhatsApp的)。

if (url.startsWith("share://")) { 

      Intent share = new Intent(Intent.ACTION_SEND); 
      Uri requestUrl = Uri.parse(url); 
      String pContent = requestUrl.toString().split("share://")[1]; 
      String pasteData = pContent+""; 
      share.setAction(Intent.ACTION_SEND); 
      share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      Toast toast=Toast.makeText(getApplicationContext(),pasteData, Toast.LENGTH_LONG); 
      toast.setMargin(50,50); 
      toast.show(); 
      StringBuilder sb = new StringBuilder(); 
      String [] parts = pasteData.split("<br />"); 
      for (int i = 0; i < parts.length; i++) { 
       String part = parts[i]; 
       sb.append(part); 
       sb.append('\n'); 
      } 
      share.putExtra(android.content.Intent.EXTRA_TEXT, (Serializable) sb); 

      //share.setType("message/rfc822"); 
      //share.setType("text/plain"); 
      share.setType("*/*"); 
      startActivity(Intent.createChooser(share, "Share On")); 
      return true;