ListView删除Item后,自动刷新adapter

来源:互联网 发布:go java 对比 编辑:程序博客网 时间:2024/06/06 03:56

今天小陌讲的就是怎么在listview中自动刷新数据,其实就是调用adpter的notifyDataSetChanged();

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


好了下面是代码:

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
原创粉丝点击