簡體   English   中英

為什么我無法刪除項目?

[英]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。

希望這可以幫助...

我遇到了類似的問題,我的長單擊列表項在一種特殊情況下無法識別。

當我的列表項文本視圖包含可點擊的超鏈接時,這就是我的情況。 我能夠單擊超鏈接,而android將我重定向到瀏覽器,但是在這種情況下,我的長按/單擊無法識別整個項目,因此我的Actionmode也無法使用。

我正在嘗試通過以下鏈接解決此問題,希望對您有所幫助

鏈接1

連結2

檢查您是否真的從適配器內的數組中刪除了該項目。

聽起來您的偵聽器在配置更改期間被破壞,或者並不總是被初始化。 確保每次都調用設置偵聽器所屬的代碼塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM