簡體   English   中英

如何使用自己的ArrayAdapter從列表視圖中刪除項目?

[英]How to delete item from listview using own ArrayAdapter?

我有問題,我想從ArrayList中刪除一行眉形listView和此元素。

這是我的新ArrayAdapter

private ExpenditureAdapter adapter = null;

我使用以下方法向其中添加數據:

adapter = new ExpenditureAdapter(this,R.layout.activity_show_list,addExpenditure.getExpidentures());
        setListAdapter(adapter);

它可以正常工作,但是我想創建OnItemClickListener並使用它從listViewArrayList<Expenditure>刪除數據,但是該怎么做呢?

我的努力:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                addExpenditure.getExpidentures().remove();
            }
        });

但是ofc不起作用。如何獲取索引來刪除它?

嘗試這個

 YourListView.setOnItemClickListener(new OnItemClickListener()
   {
      @Override
      public void onItemClick(AdapterView<?> adapter, View v, int position,
            long arg3) 
      {
              YourArrayList.remove(position);
            YourArrayAdapter.notifyDataSetChanged();
      }
   });

您幾乎可以正常工作,將聽眾更改為:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         addExpenditure.getExpidentures().remove(position);
         parent.notifyDataSetChanged();
     }
});

基本上,如果要更改適配器(您的ArrayList)的基礎數據,則需要通知適配器,以便它可以相應地更新列表。 這將刪除該項目,然后重新繪制列表。

暫無
暫無

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

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