2011-06-08 194 views
1

我有一個包含列表視圖數量的應用程序。這意味着一個listview打開另一個listiview點擊一個項目從第一個listview。然後打開第三個,點擊第二個列表中的項目等等。現在的問題是,listview需要一些時間來填充數據,讓用戶感覺到點擊沒有被確認,並且用戶再次按下它。由於此,第一次點擊打開第二個列表,第二次點擊打開第三個列表,這是不期望的。我該如何照顧這一點。我嘗試使用listview.setEnabled(false)但這沒有幫助。我不想顯示進度條。我可以禁用第二次點擊或任何其他方式來處理這個問題嗎?避免多次點擊

回答

2

設置一個全局布爾$ bBeenClicked,使其在第一次點擊時爲真,並在第二次點擊時檢查它;當列表完成加載時,將其重新設置爲false。

0

您shoudl加載新的列表中PpgressDialog:

public static void open_new_list(int level) 
    { 

     verlauf = ProgressDialog.show(ctx, "Wait...", "...load new List",true,false); 
     new Thread(){ 
      @Override 
      public void run(){ 
       Looper.prepare(); 
        //load the new Listview 
        //display via runnable 
       } 
       verlauf.dismiss(); 
      } 
     }.start(); 
    } 

編輯: 沒有進度可能會klicking後取出適配器,那麼用戶無法克利克兩次

+0

很好的建議,但你錯過了我的朋友。我不想顯示進度條或對話。 :) – 2011-06-08 06:23:54

+0

哦對不起,我必須仔細閱讀^^ – 2red13 2011-06-08 06:36:42

1

你應該考慮提高你ListView S的性能。除非他們需要通過互聯網訪問某些內容或者有其他類似的限制,否則他們不應該花很長時間才能加載。好的ListView應該只加載可以在屏幕上顯示的內容,然後在用戶向下滾動時根據需要加載更多內容。您可以使用一些技巧,例如確保您重複使用convertView。我會建議你看this video。它採用最佳方式實施ListView,以使其表現良好。