展会信息港展会大全

ListView+CheckBox批量删除item
来源:互联网   发布日期:2016-01-14 12:33:08   浏览:3247次  

导读:代码主要利用ListView+CheckBox批量删除item,利用CheckBox选中一个或多个item,点击确定删除所� 3绦蚋沾蚩?钡男Ч?迹捍蚩?说サ慊髋?可境?珻heckBox出现的是下图效果,然后选择需要删除的项,最后单击菜单......

代码主要利用ListView+CheckBox批量删除item,利用CheckBox选中一个或多个item,点击确定删除所眩

程序刚打开时的效果图:

打开菜单点击 批量删除 ,CheckBox出现的是下图效果,然后选择需要删除的项,最后单击菜单 确定删除就删除你所选中的所有item。

开始上代码:

listpackage com.test.adapter;

import java.util.ArrayList;

import java.util.Iterator;

import android.app.ListActivity;

import android.content.Context;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.CheckBox;

import android.widget.CompoundButton;

import android.widget.CompoundButton.OnCheckedChangeListener;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class ArrayAdapterActivity extends ListActivity {

/** Called when the activity is first created. */

private ArrayList<String> strList = new ArrayList<String>();

private ArrayList<Integer> idList = new ArrayList<Integer>();

private ListVIewAdapter ladapter;

boolean visflag = false;

ListView lv;

static String str[] = { "苹果", "香蕉", "桔子", "猕猴桃", "李子", "甘蔗", "荔枝", "桃子",

"香瓜", "葡萄", "哈密瓜", "桂圆", "龙眼" };

CheckBox cb;

{

for (int i = 0; i < str.length; i++) {

strList.add(i, str[i]);

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ladapter = new ListVIewAdapter(this);

lv = this.getListView();

lv.setAdapter(ladapter);

lv.setScrollBarStyle(1);

lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

Toast.makeText(ArrayAdapterActivity.this, "位置:" + position,

Toast.LENGTH_SHORT).show();

}

});

}

class ListVIewAdapter extends BaseAdapter {

Context c;

LayoutInflater mInflater;

ListVIewAdapter(Context context) {

c = context;

mInflater = getLayoutInflater();

}

@Override

public int getCount() {

return strList.size();

}

@Override

public Object getItem(int position) {

return strList.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = new ViewHolder();

final int pos = position;

if (convertView == null) {

System.out.println("convertView==null");

convertView = mInflater.inflate(R.layout.list_item, null);

}

holder.tv = (TextView) convertView.findViewById(R.id.textView);

holder.cb = (CheckBox) convertView.findViewById(R.id.checkBox);

holder.tv.setText(strList.get(position));

holder.cb.setChecked(false);

System.out.println("setText:" + position);

holder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView,

boolean isChecked) {

if (isChecked && (!idList.contains(pos))) {

idList.add(pos);

} else {

if (idList.contains(pos)) {

idList.remove(Integer.valueOf(pos));

}

}

System.out.println(idList.toString());

Toast.makeText(ArrayAdapterActivity.this, "id:" + pos,

Toast.LENGTH_SHORT).show();

}

});

if (visflag) {

holder.cb.setVisibility(View.VISIBLE);

} else {

holder.cb.setVisibility(View.INVISIBLE);

}

return convertView;

}

class ViewHolder {

TextView tv;

CheckBox cb;

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, 0, 0, "批量处理");

menu.add(0, 1, 0, "确定删除");

return super.onCreateOptionsMenu(menu);

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case 0: // 批量处理

{

if (visflag == true) {

visflag = false;

idList.clear();

} else {

visflag = true;

}

this.ladapter.notifyDataSetInvalidated();

break;

}

case 1: // 确定删除

{

if (idList.size() > 0) {

for (Integer in : idList) {

System.out.println("下面确定删除 in" + in);

strList.set(in, "-1");

}

Iterator it = strList.iterator();

while (it.hasNext()) {

String ss = (String) it.next();

if (ss.trim().equals("-1")) {

it.remove();

}

}

idList.clear();

this.ladapter.notifyDataSetChanged();

}

break;

}

}

return super.onOptionsItemSelected(item);

}

}_item.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<RelativeLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content">

<TextView

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello"

android:layout_alignParentLeft="true"

android:layout_centerVertical="true"

/>

<CheckBox

android:id="@+id/checkBox"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:visibility="gone"

android:focusable="false"

/>

</RelativeLayout>

</LinearLayout>

赞助本站

人工智能实验室

相关热词: ListView CheckBox 批量 删除 item

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港