andorid自定listview添加删除button,并对列进行删除

废话不多说,直接上代码:没有任何说明的,请大家见谅。
package com.duduli.li;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class MySimpleCursorAdapter extends SimpleCursorAdapter {
	private LayoutInflater inflater;
	private ViewHolder vh = null;
	private List<Map<String, Object>> data;
	private Context context;
	public MySimpleCursorAdapter(Context context, int layout, Cursor c, String[] from,
			int[] to) {
		super(context, layout, c, from, to);
		this.inflater = LayoutInflater.from(context);
		this.context = context;
		data = getData();
		// TODO Auto-generated constructor stub
	}

	@Override
	public Cursor getCursor() {
		// TODO Auto-generated method stub
		return super.getCursor();
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return super.getCount();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return super.getItem(position);
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return super.getItemId(position);
	}


	
	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		
		if(convertView == null){
			vh = new ViewHolder();
			
			convertView = inflater.inflate(R.layout.showbook, null);
			vh.bookID = (TextView) convertView.findViewById(R.id.bookID);
			vh.bookName = (TextView) convertView.findViewById(R.id.bookName);
			vh.bookPosition = (TextView) convertView.findViewById(R.id.bookPosition);
			vh.button = (Button) convertView.findViewById(R.id.button);
			
			convertView.setTag(vh);
		}else{
			vh = (ViewHolder) convertView.getTag();
		}
		



		
//		System.out.println(position+"::::"+data.get(position).get("bookName"));
		
		
//		System.out.println("size is :"+getData().size());
//			System.out.println(list.get(0).get("bookName"));
//		System.out.println(list.get(position).get("bookID"));

//		System.out.println("position:"+position);
		vh.bookID.setText((String)data.get(position).get("bookID"));
		vh.bookName.setText((String)data.get(position).get("bookName"));
		vh.bookPosition.setText((String)data.get(position).get("bookPosition"));
		
		
		
		vh.button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				System.out.println("AAA : " + position);
				System.out.println(data.get(position).get("bookID"));
				delDialog(context,(String)data.get(position).get("bookName"));
			}
		});
		
		
		return convertView;
	}

	
//	public void setGone(){
//		System.out.println("gone");
//		vh.button.setVisibility(View.GONE);
//	}
	
	
	
	public List<Map<String, Object>> getData(){
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		
		while(getCursor().moveToNext()){
			Map<String, Object> map = new HashMap<String, Object>();
//			System.out.println("ID: "+getCursor().getString(0));
			map.put("bookID", getCursor().getString(0));
//			System.out.println("NAME: "+getCursor().getString(1));
			map.put("bookName", getCursor().getString(1));
			map.put("bookPosition", getCursor().getString(3));
		list.add(map);
		}
		
		/*for(int i=0; i<list.size(); i++){
			System.out.println(i);
			System.out.println(list.get(i).get("bookID"));
			System.out.println(list.get(i).get("bookName"));
		}*/
//		System.out.println(list.get(1).get("bookName"));
		return list;
	}
	
    public void delDialog(Context context,String bookName){
    	new AlertDialog.Builder(context)
		   .setTitle("删除书本")
		   .setMessage("你确定要删除"+bookName+"?")
		   .setPositiveButton("确定", new DialogInterface.OnClickListener() {
		       @Override
		       public void onClick(DialogInterface dialog, int which) {
		       }
		   })
		   .show();
    }
	
	
}


package com.duduli.li;

import android.widget.Button;
import android.widget.TextView;

public class ViewHolder {
	public TextView bookID;
	public TextView bookPosition;
	public TextView bookName;
	public Button button;
}

你可能感兴趣的:(android,自定义listview中的方法)