在Android上刷新列表

在Android上刷新列表,android,refresh,listactivity,Android,Refresh,Listactivity,我提出并列出了以下活动: public class Remove1 extends ListActivity{ ArrayList<String> listaE = new ArrayList<String>(); ArrayList<String> listaL = new ArrayList<String>(); int resh=0; InputStream instream; @Override

我提出并列出了以下活动:

public class Remove1 extends ListActivity{

    ArrayList<String> listaE = new ArrayList<String>();
    ArrayList<String> listaL = new ArrayList<String>();
    int resh=0;
    InputStream instream;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        lexo(); //Fill list from file
        String[] mStringArray = new String[listaE.size()];
        mStringArray = listaE.toArray(mStringArray);  //change list to String[] Array
        setListAdapter(new ArrayAdapter<String>(Remove1.this,android.R.layout.simple_list_item_1,mStringArray)); //Fill List
    }
谢谢大家!

试试看


ListView由适配器支持。您的适配器由以下行中的字符串[]支持:

String[] mStringArray = new String[listaE.size()];
您需要从适配器中删除对象,而不是从列表中删除。在OnlistItem中,单击执行以下操作:

ArrayAdapter<String> adapter = (ArrayAdapter<String>) l.getAdapter();
String item = (String) listaE.remove(position);
adapter.remove(item);
adapter.notifyDataSetChanged();

如果您想从列表对象中删除该项,您可以,只是不确定您的用例。也许您希望保留它,以便在某个时候恢复ListView。

从mStringArray中删除与列表中已删除项相对应的字符串,并在ArrayAdapter上调用notifyDataSetChanged。您必须先将其存储在某个变量中

在这种情况下,字符串将从数组列表中删除,还是仅从列表视图中删除?我需要从列表和适配器中删除我在将代码从ListAdapter强制转换为ArrayAdapter时看到了这一点,当我单击Item时应用程序停止我认为错误是因为您从支持适配器的列表中删除了对象,然后适配器再次尝试删除它。改用adapter.removelistate.getposition。更新答案以删除不安全的强制转换。如果应用程序停止,请发布stacktrace,我将帮助进行故障排除。请尝试ArrayAdapter.getAdapter.notifyDataSetChanged;当我将代码从ListAdapter强制转换为ArrayAdapter时,我看到了这一点。当我单击该项时,不进行更改,我必须返回并再次查看更改…尝试在类Scope中声明适配器。您能帮助我如何将其存储在变量中吗?我不知道该怎么做ArrayAdapter ArrayAdapter=new ArrayAdapterRemove1.this,android.R.layout.simple_list_item_1,mStringArray;SetListAdapterArrayaAdapter
String[] mStringArray = new String[listaE.size()];
ArrayAdapter<String> adapter = (ArrayAdapter<String>) l.getAdapter();
String item = (String) listaE.remove(position);
adapter.remove(item);
adapter.notifyDataSetChanged();