这是在Fragment中调用的BaseAdapter内部。 OnClickListener应该删除孔适配器,但由于某种原因它只删除内容,但它不会删除帧。它总是保持适配器的大小只是内容消失,下划线也保持不变。
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;
}
}
答案 0 :(得分:1)
尝试这样,
deleteButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
adapter.remove(adapter.getItem(position));
}
});
希望它会帮助你
答案 1 :(得分:1)
您应该从数据集中删除数据绑定到您的视图,然后调用notifyDataSetChanged()
而不是隐藏视图本身。
Button deleteButton = (Button) convertView.findViewById(R.id.delete_button);
deleteButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
allFavorite.remove(position);
notifyDataSetChanged();
}
});
答案 2 :(得分:0)
您的代码只是使视图不可见,而不是删除它们。您必须从适配器中删除,如下所示:
listItem.remove(position);
adapter.notifyDataSetChanged();