這是一個相當精緻的行爲來實現......但是,嘿,如果你想做到這一點,這裏是一個可能的方法:
你的ListView需要使用BaseAdapter實現了自定義適配器。這個CustomBaseAdapter將由對象列表,「選擇堆棧」和一個整型持有者列表進行備份。
對象列表列表將形成一個矩陣,就像包含「SN,產品,年份,版本,顏色,自定義文本」各自列表的圖像一樣,這些列表將與狀態持有者一起使用,讓您知道在那些模式目前處於哪些列表中,以及接下來要採用哪種模式。
根據您當前所處的堆棧級別,您的「堆棧選擇」將幫助您執行用戶所需的篩選,這也將由狀態持有者進行控制。
每當用戶單擊一行時,ListView將觸發onItemClick,它調用適配器將用戶選擇添加到「選擇堆棧」,並根據狀態持有者下一個可能性更改其狀態以更新數據。記住你的州持有人不能比你的矩陣列數大,因爲它擁有目前顯示的列。
上面的「更改其狀態」部分只是更改當前狀態持有者並調用notifyDataSetChanged,假設您將在適配器上實現getView方法,該方法記錄狀態持有者的當前狀態和當前選擇的「選擇堆棧」來過濾它將相應顯示的列表的內容。
ListView將自行刷新,您的適配器的getView方法將根據您當前的狀態獲取視圖。
對不起,我可以嘗試更好地解釋,如果需要的話。
讓你的應用程序真的很棒!看起來很像Windows操作系統。 ^^(jk) –