ListView删除Item后,自动刷新adapter

来源:互联网 发布:客户信息管理系统 软件 编辑:程序博客网 时间:2024/05/19 08:40
 今天**小陌**讲的就是怎么在listview中自动刷新数据,其实就是调用adpter的notifyDataSetChanged();

话不多说先上图,
这里写图片描述

好了下面是代码:
这是adapter:

public class MyAdapter extends BaseAdapter {    Context mcontext;    ArrayList<String> arrayList;    LayoutInflater inflater;    public MyAdapter(Context context, ArrayList<String> list) {        this.mcontext = context;        this.arrayList = list;        inflater = LayoutInflater.from(mcontext);    }    @Override    public int getCount() {        // TODO Auto-generated method stub        return arrayList.size();    }    @Override    public String getItem(int position) {        // TODO Auto-generated method stub        return arrayList.get(position);    }    @Override    public long getItemId(int position) {        // TODO Auto-generated method stub        return position;    }    @Override    public View getView(final int position, View convertView, ViewGroup parent) {        ViewHolder holder;        if (convertView == null) {            holder = new ViewHolder();            convertView = inflater.inflate(R.layout.item, null);            holder.button = (Button) convertView.findViewById(R.id.button);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }        holder.button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                arrayList.remove(getItem(position));                notifyDataSetChanged();            }        });        String s = getItem(position);        holder.button.setText(s);        return convertView;    }    class ViewHolder {        Button button;    }}

这是Activity:

    public class MainActivity extends Activity {    ArrayList<String> list;    ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = (ListView) findViewById(R.id.lv);        listView.setAdapter(new MyAdapter(this, initData()));    }    private ArrayList<String> initData() {        // TODO Auto-generated method stub        list = new ArrayList<String>();        for (int i = 0; i <20; i++) {            list.add("BUTTON  " + i);        }        return list;    }}
0 0
原创粉丝点击