2012-05-01 78 views
3

我有3個活動和1個類;從另一個活動刷新列表

MobilEpostaActivity(主要活動)給出從Gmail服務器意圖DATAS這些DATAS到ListeleActivity(填寫,並顯示ListView控件)和ListeleActivity填充這些DATAS到ListView,當項目的onClick上的ListView項目的點擊DATAS是意圖到GoruntuleActivity(顯示onclick項目的信息)。而且我還有一門課「Baglantı」(意思是連接),它有其他所有必需的方法。

我的問題是在這裏:當用戶點擊「刪除」按鈕。我想刷新列表視圖並向用戶顯示下一封郵件。當用戶點擊刪除按鈕時,我可以向用戶顯示下一封郵件,並在該位置添加1並顯示它。但由於其附件複雜,所以不能正常工作。

現在開始MobilEpostaActivity; 我從用戶處取得用戶名和密碼,並將它們傳遞給Baglantı類以連接到服務器。 然後我剛剛從結果主體開始,從arraylists主題開始。 然後,我通過這些機構,從與受ListeleActivity意圖

public void epostaListeleme() throws MessagingException, IOException 
    { 
     final Intent intent = new Intent(this, ListeleActivity.class); 
     intent.putStringArrayListExtra(bodylistesi ,(ArrayList<String>) getBodyList()); 
     intent.putStringArrayListExtra(konulistesi ,(ArrayList<String>) getKonuList()); 
     intent.putStringArrayListExtra(kimdenlistesi ,(ArrayList<String>) getKimdenList()); 
     startActivity(intent); 
     } 

在ListeleActivity() 獲取DATAS從與捆綁該MobilEpostaActivity。 用「from」數據填充listview。 並等待listItemOnClick。 如果Onclick Action發生,那麼將數據傳遞給GoruntuleActivity。

在GoruntuleActivity() 從Bundle獲取ListeleActivity中的數據。 和(這裏是重要的部分)等待刪除按鈕OnClick。 如果On Onclick Action首先發生)從ListView中刪除該位置。

arrayAdapter.remove(arrayAdapter.getItem(position)); 
listBaglanti.RefreshedPositions(position); 
arrayAdapter.notifyDataSetChanged(); 

秒)從bodylist,fromlist裏和subjectlist

public void RefreshedPositions(int position) 
{ 
    list.remove(list.get(position)); 
    kimdenlist.remove(kimdenlist.get(position)); 
    konulist.remove(konulist.get(position)); 
} 

三分之一)中的ArrayList持有這些 「改變」 名單中刪除位置的DATAS。

bodylistRefresh = baglan.list; 
kimdenlisteRefresh = baglan.kimdenlist; 
konulisteRefresh = baglan.konulist; 

第四位)設置這些 「改爲」 名單的MobilEpostaActivity的意圖(ListeleAcitivity的的一個)

MobilEpostaActivity mobilObject = new MobilEpostaActivity(); 
mobilObject.setKonuList(konulisteRefresh); 
mobilObject.setKimdenList(kimdenlisteRefresh); 
mobilObject.setBodyList(bodylistRefresh); 
  • 當你認爲這個過程應該重新開始。但它並沒有啓動,因爲第四步,我不認爲所以我刷新了ListView。

也許我去了哪一個很難。但我希望,你告訴我刷新列表視圖並顯示下一封郵件的正確方法。也是我的截圖;

當我第一次打開應用程序時:Merve有3封郵件。位置:點擊刪除按鈕0,1,2 enter image description here

後:ListView控件是refres和位置= 1的項目被刪除。但是它不會在GoruntuleActivity的屏幕上刪除。

enter image description here

回答

1

看起來你有涉及到太多的名單。我認爲你應該能夠只從主力名單中刪除的項目,像這樣:

arrayAdapter.remove(position); 
listBaglanti.RefreshedPositions(position); 
arrayAdapter.notifyDataSetChanged(); 

public void RefreshedPositions(int position) 
{ 
    list.remove(position); 
    kimdenlist.remove(position); 
    konulist.remove(position); 
} 

只是傳遞中的位置爲int值,而不是檢索,然後刪除對象。