CursorAdapter使用
来源:互联网 发布:大华监视器软件下载 编辑:程序博客网 时间:2024/05/21 14:02
1. Adapter的关系图
2. CursorAdapter构造函数
public CursorAdapter (Context context, Cursor c)
Api11开始被弃用
public CursorAdapter (Context context, Cursor c, boolean autoRequery)
autoequery作用: 当数据库更新,cursor是否更新
例子说明
public CursorAdapter (Context context, Cursor c, int flags)
Flags used to determine the behavior of the adapter; may be any combination ofFLAG_AUTO_REQUERY
andFLAG_REGISTER_CONTENT_OBSERVER
.3. newView 与 bindView
public abstract void bindView (View view, Context context, Cursor cursor)
Bind an existing view to the data pointed to by cursor //重用一个已有的view,使其显示当前cursor所指向的数据。
参数
public abstract View newView (Context context, Cursor cursor, ViewGroup parent)
Makes a new view to hold the data pointed to by cursor. //新建一个视图来保存cursor指向的数据
参数
- the newly created view.
4.例子:
CursorAdapter:
public MyCursorAdapter(Context context, Cursor c, boolean autoRequery) { super(context, c, autoRequery); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = LayoutInflater.from (parent.getContext()) .inflate(R.layout.list_item, parent, false); ViewHolder viewHolder = new ViewHolder(); viewHolder.textView = (TextView) view.findViewById(R.id.name); viewHolder.textView.setText(cursor.getString(cursor .getColumnIndex(Contacts.DISPLAY_NAME))); view.setTag(viewHolder); return view; } @Override public void bindView(View view, Context context, Cursor cursor) { final ViewHolder viewHolder = (ViewHolder)view.getTag(); viewHolder.textView.setText(cursor.getString(cursor .getColumnIndex(Contacts.DISPLAY_NAME))); viewHolder.textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(),viewHolder.textView.getText().toString(),Toast.LENGTH_SHORT).show(); } }); } private class ViewHolder { public TextView textView; }
Activity:
private static final String[] PROJECTION = new String[] { Contacts._ID,Contacts.DISPLAY_NAME };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI,PROJECTION, null, null, null);startManagingCursor(cursor);setListAdapter(new MyCursorAdapter(getApplicationContext(), cursor,false));}
5.扩展
if(cursor.getCount() == cursor.getPosition()){
}else{
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
viewHolder.editeText.setText(name);
}
}else{
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
viewHolder.editeText.setText(name);
}
cursor.getPosition() 获得当前下标(0开始)
cursor.moveToLast() 移动到最末
cursor.getCount() 获得数量
cursor.isLast() 判断是否最后一个,false:不再最后一个,包括超出范围
if(cursor.getCount() =< cursor.getPosition()){} 判断是否超出末端
}
}
6.代码
注意:demo为android studio工程
Demo.jar
0 0
- CursorAdapter使用
- Android 使用自定义cursorAdapter
- 【android】使用CursorAdapter注意事项
- CursorAdapter类的使用
- Android CursorAdapter的使用
- CursorAdapter的使用
- RecyclerView使用:深入 CursorAdapter
- Android使用之CursorAdapter
- CursorAdapter
- CursorAdapter
- CursorAdapter
- cursoradapter
- CursorAdapter
- CursorAdapter
- cursorAdapter
- CursorAdapter
- CursorAdapter
- CursorAdapter
- IP地址的修改
- Windows下安装并设置Redis(转)
- Linux C编程的IDE设置
- ORA-32701
- Python中的两种列表
- CursorAdapter使用
- 如何在Mac搭建php开发环境
- Subversion和TortoiseSVN安装与配置
- java中面对多线程安全问题,用什么样的Map
- iOS开发UIProgressView进度条的几个属性介绍
- 职业生涯规划
- shell变量详解
- android 单元测试 .
- Instrumentation 框架简介