2012-10-25 43 views
0

在我的Android應用程序中,我有一個列表視圖,可以在同一屏幕上刪除其中的項目 。刪除按鈕位於列表視圖 的底部,並且有一個用於刪除項目和刷新列表視圖的功能。 此功能在列表視圖的onClick()中被調用。 這是問題所在。ListView上的刪除按鈕

在刪除按鈕的onClick我已經先進行檢查的知道要刪除的項目 -

if (ListView.INVALID_POSITION != mListView.getSelectedItemPosition()) { 
//delete the selected item 
}else{ 
//do nothing 
} 

所以每當用戶觸摸刪除鍵將焦點從列表視圖中刪除,我們得到的列表視圖位置無效因此該項目不會被刪除。

我也試圖所選項目的值存儲在一個恆定和列表視圖的onItemSelected()方法對其進行更新,然後從刪除按鈕的onClick 。這種狀況的工作,但會導致另一個問題 - 如果用戶點進空區那麼從列表視圖的焦點被刪除,看起來沒有任何被選中,但是如果你按下刪除按鈕,然後刪除最後選擇的項目,因爲它來自一個常量。

這是我面臨的問題。 請建議做些什麼。

+0

您是否使用自定義列表視圖或簡單的列表視圖按鈕,下一個電話? –

+1

@ankit您必須製作custome適配器,並且必須在行文件中放置刪除buttnon,並在適配器class中創建onclick項目。如果您嘗試過任何操作,然後發佈代碼 – Google

+0

@Google我已經使用自定義適配器。所以,請告訴我有一個單一的刪除按鈕的所有項目是不正確的,我應該改變設計? – Ankit

回答

1

選擇僅在鍵盤模式下有用,它在觸摸模式下關閉,所以getSelectedItemPosition()並不總是可靠的。

請仔細閱讀,不要在此developer blog entry

如果您想使用單個按鈕,請將ListView選擇模式設置爲Single/Mutliple,然後在按鈕單擊時獲取選中的項目並刪除它們,之後再刷新ListView

1

嘗試實施onitemclickListener()並獲得該項目的ID和刪除的項目在一個ArrayAdapter點擊通過實施onclick()adapter.notifyDataSetChanged();