2013-07-26 55 views
0

我想在電子郵件正文中發送一個具有某些值的ArrayList。 像這樣:如何在Android中發送電子郵件正文中的ArrayList?

Button bt_send = (Button) findViewById(R.id.bt_cadastrar_medicos); 
     bt_cadastrar_medicos.setOnClickListener(new OnClickListener() { 
        @Override 
      public void onClick(View arg0) { 
       Intent intent = new Intent(Intent.ACTION_SEND); 
       intent.setType("plain/text"); 
       intent.putExtra(Intent.EXTRA_EMAIL, "[email protected]"); 
       intent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT"); 
       ArrayList<String> array = new ArrayList<String>();     
       for(int i=0; i<2; i++){ 
            String ii = String.valueOf(i); 
        niveis.add(ii);    
         niveis.add(ii); 
        intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i)); 
       } 

       startActivity(Intent.createChooser(intent, "Choose the app to send:")); 
      } 
     }); 

這只是一個例子,其實我想添加在陣列位置值,從一個Java類的獲取。但在身體中,只有最後一個值出現,在這種情況下將是「2」。

如何在身體中顯示所有人?那可能嗎?

謝謝。

回答

0

在你的for循環,這個調用

intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i)); 

正在取代每次通過環路EXTRA_TEXT數據。您需要構建要發送的整個字符串作爲EXTRA_TEXT,然後通過對putExtra()的單個調用將其添加到意圖。例如。

StringBuilder sb = new StringBuilder(); 
for (String s : myArrayList) { 
    sb.append(s); 
    sb.append("\n"); 
} 
intent.putExtra(Intent.EXTRA_TEXT, sb.toString()); 
+0

哇,我的代碼中缺少我的Arraylist中的「to string」。並且使用你也是代碼。謝謝。 – user2600853

0

的問題是在這裏:

for(int i=0; i<2; i++){ 
    niveis.add("1");     
    niveis.add("2"); 
    intent.putExtra(Intent.EXTRA_TEXT, niveis.get(i)); 
} 

for循環的第一次迭代:

niveis looks like 
    1 , 2 

Intent.EXTRA_TEXT is the key to: niveis.get(0) ==>> 1 

for循環的第二次迭代:

niveis looks like 
    1 , 2 , 1 , 2 

Intent.EXTRA_TEXT is the key to: niveis.get(1) ==>> 2 

不知道你正在努力去做。但是,對於

但在身體的原因似乎剛剛過去的價值,在這種情況下將是 「2」

在上面解釋。

+0

我有一個數據庫,我IDEIA是調用DATAS並添加「niveis」陣中,所以在點擊按鈕將電子郵件發送和所有DATAS就會在體內顯示。我怎樣才能做到這一點?注意:這個「1」,「2」僅僅是一個例子,實際上,我喜歡這個位置:String values = javaClass.Method()。get(i).getTag(); niveis.add(values); – user2600853

+0

@ user2600853按照Yojimbo的代碼來達到此目的。 – Vikram

相關問題