废话不说 直接代码
记录一下,以后用
//重写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);
}
}
分享到:
相关推荐
2. 创建ListView:同样,添加一个ListView控件,设置其Columns属性以定义显示的列,然后在运行时或设计时填充ListView的数据。 3. 绑定事件:为ListView的OnMouseDown事件添加代码,检测是否为右键点击。如果是,...
在Android开发中,ListView是一个非常重要的组件,用于展示大量数据列表。BaseAdapter是它默认的数据绑定适配器,用于将数据源与ListView的视图进行绑定。然而,如果不进行优化,BaseAdapter的性能可能会成为应用的...
首先,我们需要创建一个自定义的ListView类,以便扩展其功能。这个自定义的ListView类(如`CustomListView`)将包含对TextBox控件的管理和事件处理。我们可以在`ItemTemplate`中添加TextBox控件,并在需要时显示或...
如果ListView的数据是绑定到一个数据集(如DataTable或BindingSource),那么删除操作应同时更新数据源。可以使用数据绑定的事件,如DataSourceChanged或CurrentCellChanged,来监控并执行删除操作。 ```csharp ...
例如,如果ListView项包含一个ImageView和一个TextView,ViewHolder可以这样定义: ```java static class ViewHolder { ImageView imageView; TextView textView; } ``` 2. **复用convertView**:在BaseAdapter...
在`getView()`方法中,我们将为每一项ListView创建一个包含文字和按键的布局。布局文件通常会包含一个TextView用来显示数据,和一个Button用于响应点击。使用LayoutInflater.from(context).inflate(R.layout.item_...
2. **创建自定义Adapter**:自定义一个继承自BaseAdapter的Adapter,用于绑定数据到ListView的每个列表项。在getView()方法中,为每个列表项的ImageView设置一个NetworkImageView。 ```java @Override public View ...
本资源包含了一个关于ListViewAdapter和ViewHolder的代码示例,帮助开发者更好地理解和实现这个功能。 **ListViewAdapter详解** ListViewAdapter是Android SDK提供的一个抽象类,它是BaseAdapter的子类。开发者需要...
1. **布局文件**:在XML布局文件中,你需要创建一个ListView,并为其指定一个id,例如`android:id="@+id/listView1"`。此外,ListView通常需要一个适配器(Adapter)来填充数据。 2. **适配器**:常见的适配器有...
然而,"可编辑的LISTVIEW"是一个特制的功能,允许用户在ListView控件中直接修改数据,这在数据输入和管理应用程序中非常有用。本篇将深入探讨如何使用C#语言实现这一功能。 一、ListView控件基础 ListView控件是...
`ListView` 是 `ItemsControl` 的一个具体实现,可以绑定到各种数据源,并通过数据模板将数据转化为可视元素。 在XAML中,我们使用 `<ListView>` 标签来声明和配置 `ListView` 控件。下面我们将深入探讨 `ListView`...
在Android中,ListView的工作原理是它不会为每个可见的item创建一个单独的视图,而是重用那些已经滑出屏幕的item视图。因此,当一个item被滚动出屏幕后,ListView会复用这个item的视图给新的item。如果在EditText中...
综上所述,“含按钮的ListView”是一个典型的Android开发场景,涉及到ListView的自定义适配器、数据绑定、事件监听和性能优化等多个知识点。通过实践这个案例,开发者能够更好地理解和运用Android的UI开发技术,提升...
ListView由多个列表项(List Item)组成,每个列表项通常是一个View对象,可以包含文本、图像或其他UI元素。在Android中,我们通常通过Adapter来将数据源(如ArrayList)与ListView连接起来,Adapter负责将数据转化...
ListView是Android平台中一个常用的控件,用于展示大量的数据列表。在处理大量数据时,为了提高性能和用户体验,通常会采用ViewHolder设计模式。这个“万能的ViewHolder适配器”概念,就是对ViewHolder模式的一种...
1. **EditText的键值对绑定**:在getView()方法中,为每个EditText设置一个Tag,比如使用position作为Tag,以便在用户输入时能根据位置找到对应的列表项数据。 2. **监听EditText的输入事件**:通过添加TextWatcher...
在`getView`方法中,可以通过`position`参数来判断当前被绑定的item是否是最后一个。例如,如果`position == getCount() - 1`,那么这个item就是列表的最后一个。 3. **设置动画**: 当识别到是最后一个item时,...
因此,"Android Super ListView"是针对这些优化需求而提出的一种解决方案,旨在提供一个更加高效、流畅的列表视图体验。 1. **ViewHolder模式**:这是优化ListView的基础策略,通过复用convertView减少视图的创建。...
1. **自定义Adapter**:首先,你需要创建一个继承自BaseAdapter的自定义Adapter,例如`MyListAdapter`。在这个Adapter中,你需要重写`getView()`方法,这是为ListView的每个列表项生成视图的地方。 ```java public ...
然而,在ListView的每个Item中嵌入EditText时,可能会遇到一个常见的问题——“EditText错乱”。这通常表现为用户在EditText中输入数据后,当ListView滚动时,数据会显示在错误的列表项上,造成用户体验不佳。为了...