如何从Android ListActivity中的适配器中删除项目

cmw*_*379 0 java android listactivity

我正在编写一个Android应用程序,需要动态删除我的listActivity中的足球游戏名单中的玩家.Activity有一个适配器,它链接到一个描述每个玩家的Strings数组.然后我点击时尝试从列表中删除一个播放器.我的问题是,每当我使用内置方法的适配器删除我不断收到此错误.

 FATAL EXCEPTION: main
 java.lang.UnsupportedOperationException
 at java.util.AbstractList.remove(AbstractList.java:638);
Run Code Online (Sandbox Code Playgroud)

据我所知,我没有权利从适配器中删除项目,但我不明白为什么,因为我在网上找到的每个例子似乎都没有问题.这是我用来尝试从适配器中删除单个项目的代码.

    public void onListItemClick(ListView l, View v, int position, long id)
{
    super.onListItemClick(l, v, position, id);

    adapter.remove(adapter.getItem(position));
    adapter.notifyDataSetChanged(); //Updates adapter to new changes
}
Run Code Online (Sandbox Code Playgroud)

这是我试图更改适配器的数据源并通知它更改希望它将更新屏幕列表的代码.

    public void onListItemClick(ListView l, View v, int position, long id)
{
    super.onListItemClick(l, v, position, id);

    mainRoster.removePlayer(position); //removes from custom roster
    stringedRoster = mainRoster.getStringArray();  //Resets string array
    adapter.notifyDataSetChanged(); //Updates adapter to new changes

}
Run Code Online (Sandbox Code Playgroud)

如果有人能够对可能发生的事情发表一些看法,那将非常感激.

mar*_*o16 7

如果您使用List来存储您的Object并通过适配器将它们显示在ListVeiw中,您将使用:

    public void onListItemClick(ListView l, View v, int position, long id)
{
    super.onListItemClick(l, v, position, id);

    list.remove(position);
    adapter.notifyDataSetChanged(); //Updates adapter to new changes
}
Run Code Online (Sandbox Code Playgroud)

这很好用