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);
}
...
...
我正在创建自定义ArrayAdapter
,listview项目布局中有一个按钮,单击时我想从列表视图中删除listview项目。我不确定我做得对..
任何帮助都会得到满足,谢谢。
答案 0 :(得分:0)
1)
public void onClick(View v) {
if (...) {
this.remove(<object>);
notifyDataSetChanged();
注意:对象应该相对于position
中的项目,在getView()中使用。
2)
public void onClick(View v) {
if (...) {
<object>.remove(position);
notifyDataSetChanged();
注意:object是像getList()中使用的ArrayList,Hashmap这样的容器。
我认为没有必要调用notifyDataSetInvalidated,占用计算机时间。