Java 使用自定义ListAdapter从ListView中删除项

Java 使用自定义ListAdapter从ListView中删除项,java,android,listview,Java,Android,Listview,我正在创建自定义ArrayAdapter,listview项布局中有一个按钮,单击时我想从listview中删除listview项。我不确定我是否做对了 感谢您的帮助。我以前也做过类似的编码。有两种方法可以做到这一点。您的示例代码: 一, 注意:对象是类似于在getView中使用的ArrayList Hashmap的容器 我认为调用notifyDataSetInvalidated是不必要的,需要花费计算机时间。项目的位置您只是想将其从列表中删除,还是还想将其从列表的“备份数组”中删除?如果是这样

我正在创建自定义ArrayAdapter,listview项布局中有一个按钮,单击时我想从listview中删除listview项。我不确定我是否做对了


感谢您的帮助。

我以前也做过类似的编码。有两种方法可以做到这一点。您的示例代码:

一,

注意:对象是类似于在getView中使用的ArrayList Hashmap的容器


我认为调用notifyDataSetInvalidated是不必要的,需要花费计算机时间。

项目的位置您只是想将其从列表中删除,还是还想将其从列表的“备份数组”中删除?如果是这样,您使用什么类型的数组将数据获取到ListView中?首先获取项的位置,然后从数组中删除它,最后是notifyDataSetChanged
public class MyListAdapter extends ArrayAdapter<Object>{
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
        ...
        ...
        delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                if (...) {
                    MyListAdapter.this.remove(); //what parameter to pass?
                    MyListAdapter.this.notifyDataSetChanged();
                    MyListAdapter.this.notifyDataSetInvalidated();
                } else {
                    Toast.makeText(v.getContext(), "Error deleting item.", Toast.LENGTH_SHORT);
                }
         ...
         ...
public void onClick(View v) {
   if (...) {
      this.remove(<object>);
      notifyDataSetChanged();
public void onClick(View v) {
    if (...) {
       <object>.remove(position);
       notifyDataSetChanged();