2016-10-25 9 views
0

У меня есть список, значение которого я хочу отправить по почте. Но в почте я получаю только последнее значение, а не все значения. Ниже мой кодОтправить значения из списка <> с помощью метода setText() по почте через весну

private String sName[]; 
private String sID[]; 
method abc() 
{ 
    some code..... 
final int numberOfStudentsAdded = recentlyJoinedStudents.size(); 
sName= new String[numberOfStudentsAdded]; 
sID=new String[numberOfStudentsAdded] 
for(int i=0;i<numberOfStudentsAdded;i++) 
    { 
     for(final Student s :recentlyJoinedStudents) 
     { 
      sName[i]=s.getName(); 
      sID[i]=s.getId(); 
     } 
     message.setText(
       "<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr><tr><td>" 
         + sName[i] + "</td><td>" + sID[i] + "</td><td></tr></table>", true); 

    }} 

Проблема с приведенным выше кодом Предположим, у меня есть 3 ученика в моем списке. Но это дает запись последнего ученика. Я хочу, требуемой мощности, как

Имя студента Student ID

абв 1

хуг 2

PQR 3

, но я получаю выход как

Имя студента Student ID

pqr 3

Как я могу это достичь. Что не так в моем коде.

+0

Похоже, что вы переопределяете сообщение каждой итерацией. –

+0

@ a-sir Да, похоже. Как я могу запретить метод setText переопределять и получать требуемый вывод. пожалуйста suugest –

+2

Я думаю, что внутренний цикл не нужен для вашей логики и заменяет 's.getName();' на 'recentJoinedStudents .get (i) .getName()' – PSabuwala

ответ

1

Вы перезаписаны все время со свойством текстового сообщения с сообщением. SetText (""). И я не понимаю две петли. Вместо этого попробуйте этот фрагмент кода:

String text = "<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr>"; 
    for(int i=0;i<recentlyJoinedStudents.size();i++) { 
     text += "<tr><td>" + recentlyJoinedStudents.get(i).getName() + "</td><td>" 
       + recentlyJoinedStudents.get(i).getId() + "</td><td></tr>"; 
    } 
    text += "</table>"; 
    System.out.print(text); 
-1

Как @ сказал, сэр, вы перекрывая его каждый раз при настройке значения, как

Изменить код на следующий

private String sName[]; 
private String sID[]; 
method abc() 
{ 
    some code..... 
final int numberOfStudentsAdded = recentlyJoinedStudents.size(); 
sName= new String[numberOfStudentsAdded]; 
sID=new String[numberOfStudentsAdded]; 
StringBuilder dataTable = new StringBuilder("<table><tr><td><h6>Student Name</h6></td><td><h6>Student ID</h6></td></tr>"); 
for(int i=0;i<numberOfStudentsAdded;i++) 
    { 

     for(final Student s :recentlyJoinedStudents) 
     { 
      sName[i]=s.getName(); 
      sID[i]=s.getId(); 
     } 
     dataTable.append("<tr><td>"+ sName[i] + "</td><td>" + sID[i] + "</td><td></tr>"); 
    } 
    dataTable.append("</table>"); 
    message.setText(dataTable.toString(), true); 
} 
+0

Спасибо за ваше предложение, но в коде, указанном вами значениями переопределены. Может быть, из-за двух циклов. –