`

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;
}

  • 大小: 23.1 KB
分享到:
评论

相关推荐

    C# mono ListView实例带按钮事件

    ListView实例通常与数据绑定,可以自定义列头,支持多选,以及添加各种自定义视图,如嵌入按钮。本教程将深入探讨如何在C# Mono中创建一个具有按钮事件的ListView实例。 首先,我们需要理解ListView的基本结构。...

    Android 中ListView的Item点击事件失效的快速解决方法

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。然而,在实际开发过程中,我们经常会遇到ListView的Item点击事件失效的问题。这通常发生在我们创建了自定义的复杂布局,并在Adapter中继承...

    传智播客_Andorid_Android基础视频video_第三天修

    在“传智播客_Andorid_Android基础视频video_第三天修”这个课程资源中,我们可以期待学习到Android开发的基础知识。这个压缩包文件名表明这是一个关于Android开发的视频教程,特别聚焦于第三天的教学内容,可能涵盖...

    传智播客_Andorid_Android基础视频video_第四天修

    以下是对"传智播客_Andorid_Android基础视频video_第四天修"这个学习资源中可能涉及的知识点的详细解析: 1. **Android Studio入门**:第四天的课程可能首先介绍Android Studio,这是官方推荐的集成开发环境(IDE)...

    传智播客_Andorid_Android基础视频video_第六天修

    "传智播客_Andorid_Android基础视频video_第六天修"这个资源显然是一系列面向初学者的教程视频,旨在帮助学习者掌握Android开发的基本概念和技术。第六天的课程可能是对前五天内容的巩固和深化,也可能引入了新的...

    传智播客_Andorid_Android基础视频video_第九天修

    14. **单元测试和Mockito**:学习如何对Android应用进行单元测试,使用Mockito等工具模拟对象,确保代码质量。 15. **Gradle构建系统**:掌握Gradle构建脚本,理解依赖管理和版本控制。 通过"第九天修"这个课程,...

    Android应用源码andorid 源码北京公交线路查询(离线).zip

    该压缩包文件“andorid 源码北京公交线路查询(离线).zip”包含了一个Android应用程序的源代码,用于实现北京市公交线路的离线查询功能。这个项目对于学习Android开发,尤其是对移动应用中的地理位置服务和数据存储...

    传智播客_Andorid_Android项目手机卫士视频video_day12视频

    在本课程"传智播客_Andorid_Android项目手机卫士视频video_day12视频"中,我们聚焦于Android应用程序开发,特别是针对一个名为"手机卫士"的项目进行深入学习。这个项目的目的是创建一个实用的安全应用,类似于现实...

    Android Music_Player期末设计

    在Android中,文件操作通常通过File类进行,添加歌曲意味着将外部存储设备(如SD卡)上的音乐文件路径存入数据库;而删除则需要从数据库中移除相应记录,并可能涉及实际物理文件的删除。 在UI设计方面,可能使用了...

    传智播客_Andorid_Android基础视频video_第七天修

    在本压缩包“传智播客_Andorid_Android基础视频video_第七天修.rar”中,包含了关于Android基础知识的视频教程,主要针对初学者,旨在帮助他们掌握Android开发的基本技能。以下是根据标题和描述提炼出的相关知识点:...

    Android - "失物招领平台"的功能设计与实现

    我们需要创建相应的数据库表,并通过SQL语句进行数据的插入、查询、更新和删除操作。Android提供了SQLiteOpenHelper类,用于管理数据库的版本控制和生命周期,我们可以通过其子类来实现数据库的初始化和升级。 在...

    【计算机专业-Andorid项目源码100套之】手机通讯集信息,文件,语音呼叫于一体(小鸟版)

    1. **用户界面设计**:Android应用的用户界面通常使用XML布局文件进行设计,开发者需要熟悉各种UI组件,如EditText(文本输入)、ListView(列表视图)、Button(按钮)等,并通过Java或Kotlin代码与之交互。...

    传智播客_Andorid_Android项目手机卫士视频video_day13视频

    4. **组件使用**:Android提供了丰富的组件库,如按钮(Button)、文本框(EditText)、图片视图(ImageView)、列表视图(ListView)、网格视图(GridView)等,这些可能在手机卫士项目中被用来实现用户界面。...

    Android应用源码andorid 源码北京公交线路查询(离线)-IT计算机-毕业设计.zip

    11. **异常处理**:良好的异常处理机制是确保应用稳定运行的关键,开发者需要对可能出现的错误情况进行预见,并给出相应的处理策略。 12. **权限管理**:如果应用涉及到读写外部存储或使用GPS,需要在...

    Android通讯录源码.rar

    - 良好的编程习惯要求对可能出现的异常进行捕获和处理,以保证应用的稳定性。 通过研究这个源码,开发者可以了解Android应用的基本架构,掌握如何处理用户输入、与系统服务交互、存储数据以及构建响应式用户界面等...

    android控件

    除了简单的启动Activity,Intent还可以携带数据,通过putExtra()方法添加键值对,然后在目标Activity中通过getExtra()方法获取数据。 三、布局管理 Android使用XML来定义界面布局,主要有以下几种布局: 1. ...

    Android--快递查看效果安卓经典UI特效.rar

    1. **Android UI组件**:快递查询界面可能包含多个常见的Android UI组件,如TextView用于显示快递单号和状态,EditText用于用户输入快递单号,RecyclerView或者ListView用于展示历史查询记录,还有可能使用Button来...

    Android---UI篇

    •Android---UI篇---Button(按钮) • •Android---UI篇---TextView(文本框) • •Android---UI篇---EditText(编辑框) • •Android---UI篇---DatePicker,TimePicker(日期和时间) • •Android---UI篇---...

    Android应用源码之随手记安卓记账项目.rar

    7. **UI交互**:项目可能使用了各种Android UI组件,如EditText(输入框)、Button(按钮)、ListView或RecyclerView(列表视图)等,展示了如何处理用户输入和事件响应。 8. **网络通信**:如果应用有云同步功能,...

    Android UI组件实例集合

    2-在xml中配置GifView的基本属性,GifView继承自View类,和Button、ImageView一样是一个UI控件。 如: android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingTop="4px" ...

Global site tag (gtag.js) - Google Analytics