Android listview中item的滑动删除

版权所有,禁止匿名转载;禁止商业使用。
 private List<ApplicationInfo> mAppList;
 private AppAdapter mAdapter;
 private SwipeMenuListView mListView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_list);
  mAppList = getPackageManager().getInstalledApplications(0);
  mListView = (SwipeMenuListView) findViewById(R.id.listView);
  mAdapter = new AppAdapter();
  mListView.setAdapter(mAdapter);
  // 步骤1。创建一个MenuCreator
  SwipeMenuCreator creator = new SwipeMenuCreator() {
   @Override
   public void create(SwipeMenu menu) {
//    // 创建“开放”项
//    SwipeMenuItem openItem = new SwipeMenuItem(
//      getApplicationContext());
    // 设置项目背景
//    openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,
//      0xCE)));
//    // 设置分类长度 
//    openItem.setWidth(dp2px(90));
//    // 设置项标题
////    openItem.setTitle("Open");
//    // 设置项标题字形大小
//    openItem.setTitleSize(18);
//    //标题字体颜色设置项
//    openItem.setTitleColor(Color.WHITE);
//    // 添加到菜单
//    menu.addMenuItem(openItem);
    //创建“删除”项目
    SwipeMenuItem deleteItem = new SwipeMenuItem(
      getApplicationContext());
    // 设置项目背景
    deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,
      0x3F, 0x25)));
    // 设置分类长度
    deleteItem.setWidth(dp2px(90));
    // 设置一个图标
    deleteItem.setIcon(R.drawable.ic_delete);
    // 添加到菜单
    menu.addMenuItem(deleteItem);
   }
  };
  // 设置的创造者
  mListView.setMenuCreator(creator);
  // 步骤2。侦听器项点击事件
  mListView.setOnMenuItemClickListener(new OnMenuItemClickListener() {
   @Override
   public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
    ApplicationInfo item = mAppList.get(position);
    switch (index) {
//    case 1:
     // open
//     open(item);
//     break;
    case 0:
     // delete
     mAppList.remove(position);
     mAdapter.notifyDataSetChanged();
     break;
    }
    return false;
   }
  });
  
  // 设置SwipeListener
//  监听是否滑动
  mListView.setOnSwipeListener(new OnSwipeListener() {
   
   @Override
   public void onSwipeStart(int position) {
    // 点击开始
    Log.d("++++++++++++++", "99999999999999");
   }
   
   @Override
   public void onSwipeEnd(int position) {
    // 刷卡结束
    Log.d("+*****+++++++++++", "99999999999999");
   }
  });
  // 其他设置 其他设定
//  listView.setCloseInterpolator(new BounceInterpolator());
  
  // 测试项目长点击
  mListView.setOnItemLongClickListener(new OnItemLongClickListener() {
   @Override
   public boolean onItemLongClick(AdapterView<?> parent, View view,
     int position, long id) {
    Toast.makeText(getApplicationContext(), position + " long click", 0).show();
    return false;
   }
  });
  
 }
 
 
 class AppAdapter extends BaseAdapter {
  @Override
  public int getCount() {
   return mAppList.size();
  }
  @Override
  public ApplicationInfo getItem(int position) {
   return mAppList.get(position);
  }
  @Override
  public long getItemId(int position) {
   return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   if (convertView == null) {
    convertView = View.inflate(getApplicationContext(),
      R.layout.item_list_app, null);
    new ViewHolder(convertView);
   }
   ViewHolder holder = (ViewHolder) convertView.getTag();
   ApplicationInfo item = getItem(position);
   holder.iv_icon.setImageDrawable(item.loadIcon(getPackageManager()));
   holder.tv_name.setText(item.loadLabel(getPackageManager()));
   return convertView;
  }
  class ViewHolder {
   ImageView iv_icon;
   TextView tv_name;
   public ViewHolder(View view) {
    iv_icon = (ImageView) view.findViewById(R.id.iv_icon);
    tv_name = (TextView) view.findViewById(R.id.tv_name);
    view.setTag(this);
   }
  }
 }
 private int dp2px(int dp) {
  return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
    getResources().getDisplayMetrics());
 }

 源码下载


0 0