Java 使用OnClickListener删除适配器项

Java 使用OnClickListener删除适配器项,java,android,user-interface,Java,Android,User Interface,这是在片段中调用的BaseAdapter的内部。OnClickListener应该删除孔adapteritem,但由于某些原因,它只删除内容,而不会删除框架。它始终保持适配器的大小,只是内容消失,下划线也保持不变 public View getView(final int position, View convertView, ViewGroup parent) { boolean memCache = true; boolean fileCache = true; i

这是在片段中调用的BaseAdapter的内部。OnClickListener应该删除孔adapteritem,但由于某些原因,它只删除内容,而不会删除框架。它始终保持适配器的大小,只是内容消失,下划线也保持不变

public View getView(final int position, View convertView, ViewGroup parent) {
    boolean memCache = true;
    boolean fileCache = true;

    if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
        activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.favorite_list_item, null);
    }

    TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
    txtTitle.setText(allFavorite.get(position).getTitle());

    Button deleteButton = (Button) convertView.findViewById(R.id.delete_button);
    deleteButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            ((View) view.getParent()).setVisibility(View.GONE);
        }
    });

    return convertView;
  }
}
试着这样,

deleteButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            adapter.remove(adapter.getItem(position));
        }
    });

希望它能帮助您

您应该从数据集中删除视图的数据绑定,然后调用
notifyDataSetChanged()
,而不是隐藏视图本身

Button deleteButton = (Button) convertView.findViewById(R.id.delete_button);
    deleteButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            allFavorite.remove(position);
            notifyDataSetChanged();
        }
    });

您的代码只是使视图不可见,而不是删除它们。您必须按如下方式从适配器中删除:

listItem.remove(position);
adapter.notifyDataSetChanged();

如何将适配器项放入适配器中?