2012-05-21 38 views
1

下午好,提前ListView的下一個項目/ setSelectionFromTop不工作/禁止用戶滾動ListView控件

我有一個展示的項目列表的列表視圖...好不是他們的全部,但他們都在那裏。而不是讓用戶向上/向下滾動需求和向上/向下按鈕。除了如何推進ListView之外,我已經處理得非常好。假設我正在查看列表中的第3項。用戶點擊接下來...我想要ListView前進到第4項。我在內部跟蹤他們在哪個頁面上進行遞增/遞減。我期待找到這樣的東西,但沒有骰子。

ListView.MoveNext(); 

ListView.Move(int); 

每佈雷登的建議,我在這裏試圖接受的解決方案:Maintain/Save/Restore scroll position when returning to a ListView並沒有出現滾動列表....即。它停留在第一個列表項上。我也試過setSelection。

這裏是我的代碼:

public void btn_NextClick(View vw_Current) 
{ 
    //increment page count 1 
    i_PageTracker ++; 

    //advance to next record 
    //int x = lstvw_LiftData.getFirstVisiblePosition(); 
    View v = lstvw_LiftData.getChildAt(0); 
    int top = (v == null) ? 0 : v.getTop(); 

    lstvw_LiftData.setSelectionFromTop(i_PageTracker, top); 
    //lstvw_LiftData.setSelection(i_PageTracker); 
} 

基於弗拉基米爾的成功和我的缺乏,我想提供,我認爲無關,但一些額外的信息....

我已經延長了SimpleAedapter並重寫getView。我也有一個DataBinder來填充來自數據對象的某些數據的TextViews。

有趣的是,當我在DataAdapter的getView中設置斷點,並在加載時設置活頁夾的setViewValue時,我們會根據情況命中它們。然而,當下一個按鈕被點擊時,我們不會擊中它們,如果列表正在前進到下一個位置,我們不會期望它們....嗯,我想知道....我有另一個想法....馬上回來。

我想通了......但我不知道該怎麼辦。看到我不知道自己在做什麼,我開槍自殺。我只想一次看到列表中的一個項目,我不希望用戶能夠滾動。那麼我所做的就是在DataAdapter中重寫getCount並返回1.這就是答案,因爲只有一個項目顯示很酷!但是,覆蓋getCount也意味着只有一個項目可以顯示,所以我們永遠不會前進......沒有什麼可推進的。

所以我想知道的是這個。如何防止用戶滾動並強制他們使用導航按鈕。我是否處理滾動事件並返回null?

+1

看到這個問題:http://stackoverflow.com/questions/3014089/scroll-to-a-position-in-a-listview – Brayden

+0

你確定'btn_NextClick()'被調用嗎?我剛剛嘗試過'int position = _listView.getFirstVisiblePosition(); 嘗試_listView。setSelection(position + 1); }趕上(例外e){}',它完美的作品 – Vladimir

+0

是的,當斷點受到打擊。 – GPGVM

回答

0

我想通了......但我不知道該怎麼辦。看到我不知道自己在做什麼,我開槍自殺。我只想一次看到列表中的一個項目,我不希望用戶能夠滾動。那麼我所做的就是在DataAdapter中重寫getCount並返回1.這就是答案,因爲只有一個項目顯示很酷!但是,覆蓋getCount也意味着只有一個項目可以顯示,所以我們永遠不會前進......沒有什麼可推進的。

所以我想知道的是這個。如何防止用戶滾動並強制他們使用導航按鈕。我是否處理滾動事件並返回null?