[英]Why can't I remove an item?
我真的很沮喪,因為我今天已經嘗試了 4 個小時,但找不到解決方案。 出於某種原因,我的長按監聽器有時沒有被檢測到!
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
Toast.makeText(MainActivity.this, "Long click", Toast.LENGTH_SHORT).show();
contactArrayList.remove(pos);
arrayAdapter.notifyDataSetChanged();
return true;
}
});
這個簡單的代碼只是使用適配器從我的列表和數組列表中刪除了一個項目。 但是,有時,甚至沒有調用 onItemLongClickListener,甚至沒有顯示吐司! 我知道 android 正在檢測它,因為每當我長按日志貓時都會收到此消息:
/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
那么為什么它只是有時有效? 我的代碼有問題嗎,或者這是android本身的問題? 如果是android的問題,我該如何解決?
它第一次工作,但在退出我的應用程序、旋轉屏幕等后,長按停止被檢測到。 我已經被困在這個問題上將近 8 個小時了,我真的、真的、真的需要你的幫助。
可以嘗試使用View.OnItemLongClickListener()而不是AdapterView,並將OnItemLongClick()中的參數更改為View。
希望這可以幫助...
檢查您是否真的從適配器內的數組中刪除了該項目。
聽起來您的偵聽器在配置更改期間被破壞,或者並不總是被初始化。 確保每次都調用設置偵聽器所屬的代碼塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.