2012-02-01 3 views
0

Я получаю папку входящих сообщений в своей учетной записи gmail, могу указать входящие сообщения электронной почты, но этот список указан из более старых писем для более новых писем. Как я могу это вернуть?Листинг Inbox с Javamail API

public class readInbox extends ListActivity{ 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
//setContentView(R.layout.readmail); 

Message[] messages = new Message[] { }; 

try { 
    messages = inboxReader.getMail(); 
} 
catch (MessagingException e) { 
    Log.e("mailReader getMail error. in readmail.java", e.getMessage(), e); 
} 



ArrayAdapter<Message> adapter = new ArrayAdapter<Message>(this, 
R.layout.simple_list_item_1 ,messages){ 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     Message message = getItem(position); 
     TextView resultView = new TextView(super.getContext()); 
     try { 
      resultView.setText(message.getSubject()); 
     } 
     catch (MessagingException e) { 
      Log.e("resultView.setText in readmail", e.getMessage(), e); 
     } 
     return resultView; 
    } 
}; 

setListAdapter(adapter); 
} 
} 

ответ

0

либо инвертировать порядок массива, или для getItem, использовать индекс вернулся (кол-положение-1).

Кстати, это не эффективный способ использования списков, и на самом деле у него есть утечка памяти, из-за чего он будет терпеть крах после множества предметов (для SGS3 достаточно 10000).

для получения дополнительной информации о ListView, проверить это видео:

http://www.google.com/events/io/2010/sessions/world-of-listview-android.html

0

Вы можете получить общее количество сообщений через inbox.getMessageCount(), а затем получить последний N количество сообщений.

Message messages[] = inbox.getMessages(inbox.getMessageCount() - 25 , inbox.getMessageCount()); 
Смежные вопросы