`
yansaibo
  • 浏览: 64053 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

关于 listview 每行绑定一个tag

阅读更多
废话不说 直接代码
记录一下,以后用
 //重写SimpleCursorAdapter
	private class SimpleAdapters extends SimpleCursorAdapter {
	    	MyDataBaseAdapter m_MyDataBaseAdapter;
	    	TextView message;
	    	String[] arr=new String[100];
	        int pos=0;
	     	public SimpleAdapters(Context context, int layout, Cursor c, String[] from,
	    			int[] to) {
	    		super(context, layout, c, from, to);
	    		// TODO Auto-generated constructor stub
	    	}
	    	@Override
	    	public void bindView(View view, Context context, final Cursor cursor) 
	    	{
	    		
	    		/* 构造MyDataBaseAdapter对象 */
	    		m_MyDataBaseAdapter = new MyDataBaseAdapter(context);
	    		/* 取得数据库对象 */
	    		m_MyDataBaseAdapter.open();
	    		// 绑定数据到view ,test
	    		TextView name = (TextView) view.findViewById(R.id.ListTime);
	    		message = (TextView) view.findViewById(R.id.ListMessage);
	    		CheckBox check=(CheckBox)view.findViewById(R.id.CheckboxActivity);
	    		name.setText(cursor.getString(1) + "小时  " + cursor.getString(2)
	    				+ "分钟");
	    		if(cursor.getString(5).equals("1"))
	    		{
	    			check.setChecked(true);
	    		}else
	    			check.setChecked(false);
	    		// 设置tag标记行  	
	    		view.setTag(cursor.getString(0));
	    		arr[pos]=cursor.getString(0);
	    		pos++;
	    		message.setText(cursor.getString(3));
	    		// + view.getTag()
	    		super.bindView(view, context, cursor);
	    		setViewBinder(new SimpleCursorAdapter.ViewBinder() 
	    		{
	    			public boolean setViewValue(View view, Cursor cursor,int columnIndex) {
	    				if (view instanceof CheckBox) {
	    					CheckBox v = (CheckBox) view;
	    					String src=cursor.getString(columnIndex);
	    					if(src.equals("true")){ 
	    						v.setChecked(true);
	    						return true;
	    						}
	    					else if(src.equals("false")){ 
	    						v.setChecked(true);
	    						return true;
	    						}
	    					}
	    				return false;
	    				}
	    			}); 
	    		//利用miCount 获取 数据库最终一个指针的id+1;(闹钟)
	    		miCount=cursor.getInt(0);
	    		miCount++;
	    	}
	    	public View getView( final int position, View convertView,ViewGroup parent) 
	    	{     
	    		convertView = super.getView(position, convertView, parent);       
	    		final CheckBox cb= (CheckBox)convertView.findViewById(R.id.CheckboxActivity);     
	    		cb.setOnClickListener(new OnClickListener()
	    		{           
	    			        
	    			public void onClick(View v) 
	    			{      
	    		    	NotificationInfo notification;	
	    		        // TODO Auto-generated method stub  
	    		    	notification=new NotificationInfo();
	    		    	String pal=arr[position];
	    		    	findData(Integer.valueOf(pal) ,pal,notification);
	    		    	UpData(pal,notification); 	
	    		    	
	    			}                      
	    		});      
	    		return convertView;
	    	}  
	    	public void findData(int ids ,String pal,NotificationInfo notification) {
	    		Cursor cursor = m_MyDataBaseAdapter.fetchData(ids);
	    		if (cursor != null && cursor.getCount() >= 0) 
	    		{
	    			notification.SetHour(Integer.valueOf(cursor.getString(1))) ;
	    			notification.SetMinute(Integer.valueOf(cursor.getString(2)));
	    			notification.SetMessage(cursor.getString(3));
	    		//	notification.SetMessage(":"+pal+":");
	    			if(cursor.getString(4).equals("1"))
	    			{
	    				notification.SetVibrationStatus(true);	    			
	    				
	    			}else
	    			{
	    				notification.SetVibrationStatus(false);
	    			}
	    			 notification.SetMusicName(cursor.getString(6));
	    		    notification.SetMusicPath(cursor.getString(7));
	    		    if(cursor.getString(5).equals("1"))
	    			{
	    		    	CancleAlarm(ids);
	    		    	notification.SetActiveStatus(false);
	    			}else
	    			{
	    				notification.SetActiveStatus(true);
	    				StartAlarm(ids,Integer.valueOf(cursor.getString(1)),Integer.valueOf(cursor.getString(2)));
	    			}

	    		}
	    	//	Toast.makeText(AlarmInfo.this, "finddata"+isVibrate+":"+"activate"+activate , Toast.LENGTH_LONG).show();
	    	}
	        public void UpData(String id ,NotificationInfo notification) 
	    	{
	    		m_MyDataBaseAdapter.updateData(Integer.valueOf(id), notification);
	    	}
	    }
分享到:
评论

相关推荐

    Delphi演示PopupMenu与ListView各个子项如何关联..rar

    2. 创建ListView:同样,添加一个ListView控件,设置其Columns属性以定义显示的列,然后在运行时或设计时填充ListView的数据。 3. 绑定事件:为ListView的OnMouseDown事件添加代码,检测是否为右键点击。如果是,...

    baseAdapter绑定listView优化

    在Android开发中,ListView是一个非常重要的组件,用于展示大量数据列表。BaseAdapter是它默认的数据绑定适配器,用于将数据源与ListView的视图进行绑定。然而,如果不进行优化,BaseAdapter的性能可能会成为应用的...

    listview内嵌textbox(c#)

    首先,我们需要创建一个自定义的ListView类,以便扩展其功能。这个自定义的ListView类(如`CustomListView`)将包含对TextBox控件的管理和事件处理。我们可以在`ItemTemplate`中添加TextBox控件,并在需要时显示或...

    Wince ListView

    如果ListView的数据是绑定到一个数据集(如DataTable或BindingSource),那么删除操作应同时更新数据源。可以使用数据绑定的事件,如DataSourceChanged或CurrentCellChanged,来监控并执行删除操作。 ```csharp ...

    ListView使用ViewHolder模式提高效率

    例如,如果ListView项包含一个ImageView和一个TextView,ViewHolder可以这样定义: ```java static class ViewHolder { ImageView imageView; TextView textView; } ``` 2. **复用convertView**:在BaseAdapter...

    带按键可点击的listview

    在`getView()`方法中,我们将为每一项ListView创建一个包含文字和按键的布局。布局文件通常会包含一个TextView用来显示数据,和一个Button用于响应点击。使用LayoutInflater.from(context).inflate(R.layout.item_...

    ListView加载图片错位

    2. **创建自定义Adapter**:自定义一个继承自BaseAdapter的Adapter,用于绑定数据到ListView的每个列表项。在getView()方法中,为每个列表项的ImageView设置一个NetworkImageView。 ```java @Override public View ...

    ListViewAdapter和ViewHolder代码,安卓listview适配器.rar

    本资源包含了一个关于ListViewAdapter和ViewHolder的代码示例,帮助开发者更好地理解和实现这个功能。 **ListViewAdapter详解** ListViewAdapter是Android SDK提供的一个抽象类,它是BaseAdapter的子类。开发者需要...

    ListView总结

    1. **布局文件**:在XML布局文件中,你需要创建一个ListView,并为其指定一个id,例如`android:id="@+id/listView1"`。此外,ListView通常需要一个适配器(Adapter)来填充数据。 2. **适配器**:常见的适配器有...

    可编辑的LISTVIEW

    然而,"可编辑的LISTVIEW"是一个特制的功能,允许用户在ListView控件中直接修改数据,这在数据输入和管理应用程序中非常有用。本篇将深入探讨如何使用C#语言实现这一功能。 一、ListView控件基础 ListView控件是...

    The ListView tag represents a WPF ListView control in XAML

    `ListView` 是 `ItemsControl` 的一个具体实现,可以绑定到各种数据源,并通过数据模板将数据转化为可视元素。 在XAML中,我们使用 `<ListView>` 标签来声明和配置 `ListView` 控件。下面我们将深入探讨 `ListView`...

    X宝买的。完美解决Android-listview中多个edittext显示混乱问题

    在Android中,ListView的工作原理是它不会为每个可见的item创建一个单独的视图,而是重用那些已经滑出屏幕的item视图。因此,当一个item被滚动出屏幕后,ListView会复用这个item的视图给新的item。如果在EditText中...

    含按钮的ListView

    综上所述,“含按钮的ListView”是一个典型的Android开发场景,涉及到ListView的自定义适配器、数据绑定、事件监听和性能优化等多个知识点。通过实践这个案例,开发者能够更好地理解和运用Android的UI开发技术,提升...

    视频案例-3.ListView动态添加数据

    ListView由多个列表项(List Item)组成,每个列表项通常是一个View对象,可以包含文本、图像或其他UI元素。在Android中,我们通常通过Adapter来将数据源(如ArrayList)与ListView连接起来,Adapter负责将数据转化...

    万能listView ViewHolder适配器

    ListView是Android平台中一个常用的控件,用于展示大量的数据列表。在处理大量数据时,为了提高性能和用户体验,通常会采用ViewHolder设计模式。这个“万能的ViewHolder适配器”概念,就是对ViewHolder模式的一种...

    当ListView遇上EditText

    1. **EditText的键值对绑定**:在getView()方法中,为每个EditText设置一个Tag,比如使用position作为Tag,以便在用户输入时能根据位置找到对应的列表项数据。 2. **监听EditText的输入事件**:通过添加TextWatcher...

    listview 最后一个item向上推入动画

    在`getView`方法中,可以通过`position`参数来判断当前被绑定的item是否是最后一个。例如,如果`position == getCount() - 1`,那么这个item就是列表的最后一个。 3. **设置动画**: 当识别到是最后一个item时,...

    Android Super ListView

    因此,"Android Super ListView"是针对这些优化需求而提出的一种解决方案,旨在提供一个更加高效、流畅的列表视图体验。 1. **ViewHolder模式**:这是优化ListView的基础策略,通过复用convertView减少视图的创建。...

    实现listview监听button

    1. **自定义Adapter**:首先,你需要创建一个继承自BaseAdapter的自定义Adapter,例如`MyListAdapter`。在这个Adapter中,你需要重写`getView()`方法,这是为ListView的每个列表项生成视图的地方。 ```java public ...

    listView中Editext错乱

    然而,在ListView的每个Item中嵌入EditText时,可能会遇到一个常见的问题——“EditText错乱”。这通常表现为用户在EditText中输入数据后,当ListView滚动时,数据会显示在错误的列表项上,造成用户体验不佳。为了...

Global site tag (gtag.js) - Google Analytics