directory search
android Manifest Manifest.permission Manifest.permission_group android.accessibilityservice AccessibilityService android.accounts Account android.app NotificationManager android.bluetooth BluetoothAdapter BluetoothClass BluetoothClass.Device BluetoothClass.Device.Major BluetoothClass.Service BluetoothDevice BluetoothServerSocket BluetoothSocket android.content SharedPreferences android.database.sqlite SQLiteCursorDriver SQLiteOpenHelper android.graphics Bitmap android.location LocationListener Geocoder GpsStatus GpsStatus.Listener GpsStatus.NmeaListener GpsSatellite android.media AudioFormat AsyncPlayer AudioRecord AudioRecord.OnRecordPositionUpdateListener ThumbnailUtils AudioManager android.net TrafficStats MailTo LocalSocket android.os AsyncTask AsyncTask.Status CountDownTimer Message MessageQueue HandlerThread android.text Html android.util JsonWriter android.view ContextMenu ContextMenu.ContextMenuInfo Display ViewManager View ViewStub ViewTreeObserver ViewParent WindowManager GestureDetector Gravity MenuInflater ScaleGestureDetector SoundEffectConstants android.view.inputmethod InputConnection InputMethod InputMethodSession BaseInputConnection InputMethodManager android.widget AbsListView AbsListView.LayoutParams AbsListView.OnScrollListener AbsListView.RecyclerListener AbsoluteLayout AbsoluteLayout.LayoutParams AbsSeekBar AbsSpinner AdapterView AdapterView.AdapterContextMenuInfo AdapterView.OnItemLongClickListener AdapterView.OnItemSelectedListener AdapterView.OnItemClickListener AnalogClock BaseAdapter BaseExpandableListAdapter Button CheckBox CheckedTextView Checkable Chronometer Chronometer.OnChronometerTickListener CompoundButton CompoundButton.OnCheckedChangeListener CursorAdapter CursorTreeAdapter DatePicker DatePicker.OnDateChangedListener DialerFilter DigitalClock EditText Filter Filter.FilterListener Filter.FilterResults ExpandableListAdapter ExpandableListView.OnChildClickListener ExpandableListView.OnGroupClickListener ExpandableListView.OnGroupCollapseListener ExpandableListView.OnGroupExpandListener Filterable Gallery Gallery.LayoutParams GridView GridLayout GridLayout.Alignment RadioGroup ImageView ImageView.ScaleType HorizontalScrollView ImageButton ImageSwitcher FilterQueryProvider ListAdapter ListView MediaController MultiAutoCompleteTextView MultiAutoCompleteTextView.CommaTokenizer MultiAutoCompleteTextView.Tokenizer QuickContactBadge RadioButton RatingBar RatingBar.OnRatingBarChangeListener RelativeLayout RemoteViews ResourceCursorAdapter ResourceCursorTreeAdapter Scroller ScrollView SearchView SearchView.OnCloseListener SearchView.OnQueryTextListener SearchView.OnSuggestionListener SeekBar SeekBar.OnSeekBarChangeListener SimpleAdapter SimpleAdapter.ViewBinder SimpleCursorAdapter SimpleCursorAdapter.CursorToStringConverter SimpleCursorAdapter.ViewBinder SimpleCursorTreeAdapter SimpleCursorTreeAdapter.ViewBinder SimpleExpandableListAdapter SlidingDrawer SlidingDrawer.OnDrawerCloseListener SlidingDrawer.OnDrawerOpenListener SlidingDrawer.OnDrawerScrollListener Spinner SpinnerAdapter WrapperListAdapter TabHost TabHost.TabSpec TextView TimePicker TimePicker.OnTimeChangedListener Toast TableLayout TableLayout.LayoutParams TableRow TableRow.LayoutParams TabWidget TextSwitcher ToggleButton TwoLineListItem VideoView ViewAnimator ViewFlipper ViewSwitcher ViewSwitcher.ViewFactory ZoomButtonsController ZoomButtonsController.OnZoomListener ZoomButton ZoomControls dalvik.system DexFile
characters


SimpleCursorAdapter

版本:Android 3.0 r1

结构

继承关系

public class SimpleCusrorAdapter extends ResourceCusorAdpater

 

java.lang.Object

android.widget.BaseAdapter

         android.widget.CursorAdapter

                            android.widget.ResourceCursorAdapter

                                     android.widget.SimpleCursorAdapter

 

类概述

这是一个用起来很方便的适配器类,它主要将CursorTexiViewImageView进行映射。比如,你想设定要展示三列,那么当做好绑定之后,视图就会展示你设定好的那些列;当然了,视图的外观是定义在XML文件里面的,你只需用这个类与视图做好绑定就可以了。与视图绑定有两个阶段。第一阶段:如果SimpleCursorAdapter.ViewBinder可用,将会调用setViewValue(android.view.View, android.database.Cursor, int)方法。该方法返回true就说明绑定成功,否则返回false ,这就到了第二阶段,SimpleCursorAdapter内部开始自行绑定,过程是这样的,若绑定到TextView上,调用setViewText();若绑定到ImageView上,调用setViewImage();如果视图不是TextViewImageView则抛出IllegalStateException异常。当使用带有过滤器的适配器时,例如,在APIDemo中有个AutoCompleteTextView的例子,我们能使用SimpleCursorAdapter.CursorToStringConverter和接口         FilterQueryProvider来控制过滤过程。更多信息请参考convertToString(android.database.Cursor) runQueryOnBackgroundThread(CharSequence)

        

内部类

public interface SimpleCusorAdapter.ViewBinder        

         这个内部接口可以在外部通过SimpleCursorAdapter.ViewBinder的方式进行Cursor     View的绑定。

 

public interface SimpleCusorAdapter.CursorToStringConverter

         这个内部接口可以在外部通过SimpleCursorAdapter.CursorToStringConverter的方式   定义怎样将Cursor转换成字符串。

 

构造函数

public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)

         构造函数启动自动重新查询(auto-requery)

         这个构造器已被标记为弃用(@Deprecated)

该方法不推荐使用,Cursor查询操作是执行在应用程序的UI线程当中,那么会导致无响应的情况。另一种方式是使用LoaderManagerCursorLoader来进行。

         (译者注:3.0已不推荐使用该构造方法)

                   参数

                            context  应用程序上下文,具体来说就是ListView所在的上下文当中。

layout       布局文件的资源定位标识符,也就是说标识了ListView中的item。那么这个布局文件至少包含了参数“to”中的传进来值。

                            c                 数据库游标,如果游标不可用则为null

from                   列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null

to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null

 

public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[]      to,int flags)     

         该适配器类标准的构造函数。(译者注:3.0新添的构造方法)

                   参数

                            context  应用程序上下文,具体来说就是ListView所在的上下文当中。

layout       布局文件的资源定位标识符,也就是说标识了ListView中的item。那么这个布局文件至少包含了参数“to”中的传进来值。

                            c                 数据库游标,如果游标不可用则为null

from                   列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null

to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null

flags                   这个标志用来决定该适配器的行为。(译者注:Android3.0推荐我们传递CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER。设置标志用来添加一个监听器,监听着参数cursor的数据是否有更变。)

 

公共方法

public void bindView (View view, Context context, Cursor cursor)

         绑定所有构造函数中的参数from(字段名)一一绑定到参数to(视图资源ID)。与视图绑定有两个阶段。第一阶段:如果SimpleCursorAdapter.ViewBinder可用,将会调用setViewValue(android.view.View, android.database.Cursor, int)方法。该方法返回true就说明绑定成功,否则返回false ,这就到了第二阶段,SimpleCursorAdapter内部开始自行绑定,过程是这样的,若绑定到TextView上,调用setViewText();若绑定到ImageView上,调用setViewImage();如果视图不是TextViewImageView则抛出IllegalStateException异常。

参数

                            view                 已存在的视图(View)对象, 也就是早先new出来的。

                            context           应用程序上下文。

                            cursor               数据库游标。该游标已经移动到指定位置上。

                   异常

                            IllegalStateException 如果绑定的视图中不是TextView或是ImageView则会                           抛出这个异常。

                   参见

                            bindView(android.view.View, android.content.Context, android.database.Cursor)

                            getViewBinder()

                            setViewBinder(android.widget.SimpleCursorAdapter.ViewBinder)

                            setViewImage(ImageView, String)

                            setViewText(TextView, String)

 

public void changeCursorAndColumns(Cursor c, String[] from, int[] to)

         同时更改CursorView的映射关系。

参数

                            c                 数据库游标,如果游标不可用则为null 

from                   列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null

to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null

                           

public CharSequence convertToString (Cursor cursor)

通过CursorToStringConverter接口实现并返回一个CharSequence  类型的值,以表示指定的Cursor。如果没有设置CursorToStringConverter,那么就会用另外的方式进行转换。如果列数为-1,或者 cursornull返回空串,否则返回cursor.toString()

                   参数

                            cursor               转换为CharSequence的数据库游标。

         返回值

                   返回一个不为nullCharSequence类型来表示参数cursor

 

public SimpleCursorAdapter.CursorToStringConverter getCursorToStringConverter ()

         返回自定义的SimpleCursorAdapter.CursorToStringConverter的实现。

返回值

                            如果没有设置SimpleCursorAdapter.CursorToStringConverter,则为null

参考

         setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

         getStringConversionColumn()

         setStringConversionColumn(int)

         convertToString(android.database.Cursor)

 

public int getStringConversionColumn ()

         返回转换成String类型的列位置。

返回值

                            返回列位置,如果没有则返回-1

参考

                            convertToString(android.database.Cursor)

                            setStringConversionColumn(int)

         setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

                            getCursorToStringConverter()

 

public SimpleCursorAdapter.ViewBinder getViewBinder ()

返回SimpleCursorAdapter.ViewBinder引用,这个ViewBinder用来将数据绑定到视图上的。

返回值

                            如果ViewBinder不存在,则返回null

参考

         bindView(android.view.View, android.content.Context, android.database.Cursor)

         setViewBinder(android.widget.SimpleCursorAdapter.ViewBinder)

 

public void setCursorToStringConverter (SimpleCursorAdapter.CursorToStringConverter cursorToStringConverter)

设置String转换器。

                   参数

                            cursorToStringConverter  String转换器,设置为null就意味着移除。

                   参考

         setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

         getStringConversionColumn()

         setStringConversionColumn(int)

         convertToString(android.database.Cursor)

 

public void setStringConversionColumn (int stringConversionColumn)

设置Cursor中的列要转换成String类型的位置。不过仅当未设置CursorToStringConverter时,这个列才会进行默认转换。

                   参数

                            stringConversionColumn  列位置,如果参数为-1,则使用默认转换机制。

                   参考

         convertToString(android.database.Cursor)

         getStringConversionColumn()

         setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

         getCursorToStringConverter()

 

public void setViewBinder (SimpleCursorAdapter.ViewBinder viewBinder)

设置视图绑定器。

                   参数

                            viewBinder  视图绑定器,可用为null删除现有的绑定器。

                   参考

         bindView(android.view.View, android.content.Context, android.database.Cursor)

         getViewBinder()

 

public void setViewImage (ImageView v, String value)

仅当ViewBinder不存在或是当ViewBinder不为ImageView绑定时(也就是setViewValue()返回false),则这个方法会被bindView()调用,以便为ImageView设置图片。默认情况下,参数value作为图片资源ID来看待,否则,会视为图片的Uri         另外还可以通过过滤器来获得更灵活的设置。

                   参数

                            v                 图片控件引用

                            value         图片资源ID,是从Cursor获取到的。

 

public void setViewText (TextView v, String text)

仅当ViewBinder不存在或是当ViewBinder不为TextView绑定时(也就是setViewValue()返回false),则这个方法会被bindView()调用,以便为TextView设置文本。可用重写适配器从数据库中检索过滤字符串。

                   参数

                            v                 文本控件引用

                            value         为文本控件设置的文本信息(译者注:是从Cursor获取到的)。

 

public Cursor swapCursor (Cursor c)

交换两个Cursor的列以及它们的数据,并最终返回的还是旧的Cursor。不同于changeCursor(Cursor)的是,旧的Cursor非但不会关闭,而且还会返回出去。(译者注:       3.0新添的方法)

                   参数

                            c  新的Cursor对象。

                   返回值

返回旧的Cursor引用,如果参数cursor不可用,则返回null。如果参数cursor与原来的Cursor引用相同,那么也返回null

 

补充

         文章精选

                   ArrayAdapterSimpleCursorAdapter例子

                   Android API : SimpleCursorAdapter()

 


Previous article: Next article: