package com.roboo.like.netease; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import android.widget.Toast; import com.roboo.like.netease.view.OverScrollListView; import com.roboo.like.netease.view.OverScrollListView.RemoveDirection; import com.roboo.like.netease.view.OverScrollListView.RemoveListener; public class OverScrollListViewActivity extends BaseActivity { private MyAdapter mAdapter; private ArrayList<String> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTVTitle(R.string.tv_overscroll_listview); initData(); mAdapter = new MyAdapter(this, mData); OverScrollListView overScrollListView = new OverScrollListView(this); overScrollListView.setRemoveListener(new SimpleRemoveListenerImpl()); overScrollListView.setAdapter(mAdapter); // TODO setContentView Tag setContentView(overScrollListView); } private void initData() { mData = new ArrayList<String>(); for (String str : getResources().getStringArray(R.array.city_list)) { mData.add(str); } } private class MyAdapter extends BaseAdapter { private List<String> data; private Context context; public MyAdapter(Context context, List<String> data) { super(); this.context = context; this.data = data; } @Override public int getCount() { return null == data ? 0 : data.size(); } @Override public String getItem(int position) { return null == data ? null : data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, null); textView.setText(data == null ? "" : data.get(position)); return textView; } } public class SimpleRemoveListenerImpl implements RemoveListener { // 滑动删除之后的回调方法 @Override public void removeItem(RemoveDirection direction, int position) { if (mData.remove(mAdapter.getItem(position))) { mAdapter.notifyDataSetChanged(); } switch (direction) { case RIGHT: Toast.makeText(getApplicationContext(), "向右删除 " + position, Toast.LENGTH_SHORT).show(); break; case LEFT: Toast.makeText(getApplicationContext(), "向左删除 " + position, Toast.LENGTH_SHORT).show(); break; default: break; } } } }