API 25 (Android 7.1.1 API) widget.AdapterView

本文详细介绍了Android中的AdapterView组件,包括其基本概念、常用子类如ListView和Spinner等,以及如何通过Adapter填充数据。同时,还介绍了与AdapterView交互的各种监听器,如OnItemClickListener和OnItemSelectedListener。

Android API 25 (Android 7.1.1 API)


AdapterView

public abstract class AdapterView

extends ViewGroup

Added in API level 1

 

java.lang.Object

   ↳android.view.View

    ↳android.view.ViewGroup

     ↳android.widget.AdapterView<T extends android.widget.Adapter>

 

已知直接子类:

AbsListView

AbsSpinner

AdapterViewAnimator

 

【概述】

AdapterView内容由适配器Adapter来决定的视图类

有关常用的AdapterView子类,请参阅ListViewGridViewSpinnerGallery

 

【开发人员指南】

有关使用AdapterView的更多信息,请阅读Binding to Data with AdapterView

 

【嵌套类】

类      AdapterView. AdapterContextMenuInfo

当为此AdapterView提供上下文菜单时,为onCreateContextMenuContextMenuViewContextMenuInfo)回调提供了额外的菜单信息。

【字段】

public long id用于显示上下文菜单的子视图的行 ID

public int position用于显示上下文菜单的子视图在适配器中的位置。

public View targetView用于显示上下文菜单的子视图。也是 AdapterView的子视图之一。

【公有构造函数】publicAdapterView.AdapterContextMenuInfo (View targetView, int position, long id)

 

接口    AdapterView. OnItemClickListener

这个接口定义了当AdapterView中一元素被点击时,一个回调函数被调用。

【公共方法】public abstract voidonItemClick (AdapterView<?> parent, View view, int position, long id)

AdapterView中一元素被点击时,回调方法被调用。

如果需要访问与被选项相关的数据,执行程序可以调用getItemAtPosition(position)

 

接口    AdapterView. OnItemLongClickListener

当单击并保持此视图中的项目时要调用的回调的接口定义。

这个接口定义了当AdapterView中一元素被长按时,一个回调函数被调用。

【公共方法】public abstract booleanonItemLongClick (AdapterView<?> parent, View view, int position, long id)

如果回调函数处理了长按时间,返回true;否则false

 

接口    AdapterView. OnItemSelectedListener

选择此视图中的项目时要调用的回调的接口定义。

定义了当选中视图中的项目时调用的回调函数的接口。

【公共方法】public abstract voidonItemSelected (AdapterView<?> parent, View view, int position, long id)

当选中视图中的项目时执行的回调函数。

【公共方法】public abstract voidonNothingSelected (AdapterView<?> parent)

当视图中的处于选中状态的条目全部消失时执行的回调函数。

启动触控功能或适配器为空都可能导致选中条目消失。

 

【继承自view.ViewGroup的XML属性】

跳转view.ViewGroup

 

【继承自view.View的XML属性】

跳转view.View

 

【公共构造函数】

AdapterView(Context context)  

AdapterView(Context context, AttributeSet attrs)  

AdapterView(Context context, AttributeSet attrs, int defStyleAttr)  

 

【公共方法】

addView

void addView (View child)

void addView (View child, int index)

void addView (View child, ViewGroup.LayoutParams params)

void addView (View child, int index,ViewGroup.LayoutParams params)

API 1

该类不支持该方法,并在调用时抛出UnsupportedOperationException异常

 

getAccessibilityClassName

CharSequence getAccessibilityClassName ()

API 23

返回此对象的类名以用于辅助功能子类只能覆盖这个,如果他们实现的东西,应该被视为一个全新的视图类,当辅助功能使用时,与其派生的类无关。这用于填充AccessibilityNodeInfo.setClassName

 

setAdapter

void setAdapter (T adapter)

API 1

设置用于为该widget的视图提供用于显示的数据的适配器

getAdapter

T getAdapter ()

API 1

返回当前与此widget关联的Adapter

 

 

getCount

int getCount ()

API 1

返回与此AdapterView关联的适配器拥有的项目数。 (这是数据项的数量,可能大于可见视图的数量。)

 

setEmptyView

void setEmptyView (View emptyView)

API 1

设置当适配器为空时显示的视图view

getEmptyView

View getEmptyView ()

API 1

当前适配器为空时,AdapterView可以显示一个称为空视图的特殊视图。 空视图用于向用户提供在此AdapterView中没有可用数据的反馈。

 

 

getFirstVisiblePosition

int getFirstVisiblePosition ()

API 1

返回显示在屏幕上的第一个元素在适配器的数据集中所处的位置。

getLastVisiblePosition

int getLastVisiblePosition ()

API 1

返回显示在屏幕上的最后个元素在适配器的数据集中所处的位置。

 

getItemAtPosition

Object getItemAtPosition (int position)

API 1

获取与列表中指定位置相关联的数据。

getItemIdAtPosition

long getItemIdAtPosition (int position)

API 1

获取与列表中指定位置相关联的数据id

 

setOnClickListener

void setOnClickListener (View.OnClickListener l)

注册此视图被点击时要调用的监听器。如果此视图不可点击,则会变为可点击。

 

setOnItemClickListener

void setOnItemClickListener (AdapterView.OnItemClickListener listener)

注册适配器数据集中条目被点击时要调用的监听器。

getOnItemClickListener

AdapterView.OnItemClickListener getOnItemClickListener ()

API 1

返回适配器数据集中条目被点击时要调用的监听器。

 

performItemClick

boolean performItemClick (View view, int position, long id)

API 1

是否调用OnItemClickListener(如果已定义)。 执行与点击相关联的所有常规操作:报告辅助功能事件,播放声音等。

如果有一个分配的OnItemClickListener被调用,则返回true,否则返回false

 

setOnItemLongClickListener

void setOnItemLongClickListener (AdapterView.OnItemLongClickListener listener)

API 1

注册适配器数据集中条目被长按时要调用的监听器。

getOnItemLongClickListener

AdapterView.OnItemLongClickListener getOnItemLongClickListener ()

API 1

返回适配器数据集中条目被长按时要调用的监听器。

 

getSelectedView

View getSelectedView ()

API 1

返回适配器数据集中当前选中的条目的视图view。没有选择则为null

getSelectedItem

Object getSelectedItem ()

API 1

返回适配器数据集中当前选中的条目项。没有选择则为null

getSelectedItemId

long getSelectedItemId ()

API 1

返回适配器数据集中当前选中的条目项id。没有选择则为INVALID_ROW_ID

getSelectedItemPosition

int getSelectedItemPosition ()

API 1

返回适配器数据集中当前选中的条目项位置索引没有选择则为INVALID_POSITION

 

setOnItemSelectedListener

void setOnItemSelectedListener (AdapterView.OnItemSelectedListener listener)

API 1

注册适配器数据集中条目被选中时要调用的监听器。

getOnItemSelectedListener

AdapterView.OnItemSelectedListener getOnItemSelectedListener ()

API 1

返回适配器数据集中条目被选中时要调用的监听器。

 

getPositionForView

int getPositionForView (View view)

API1

返回适配器项对应的视图或其子视图在适配器数据集中的位置。

注意:此方法的结果仅反映在最近的布局传递期间绑定到视图的数据的位置。如果适配器的数据集已更改,但没有后续布局通过,则此方法返回的位置可能与适配器中数据的当前位置不匹配。

 

 

removeAllViews

void removeAllViews ()

该类不支持该方法,并在调用时抛出UnsupportedOperationException异常

removeView

void removeView (View child)

该类不支持该方法,并在调用时抛出UnsupportedOperationException异常

removeViewAt

void removeViewAt (int index)

该类不支持该方法,并在调用时抛出UnsupportedOperationException异常

 

setFocusable

void setFocusable (boolean focusable)

API 1

设置此视图是否可以接收焦点。将此设置为false还将确保此视图在触摸模式下不能得到焦点

setFocusableInTouchMode

void setFocusableInTouchMode (boolean focusable)

设置在触摸模式下此视图是否可以接收焦点。将此设置为true还将确保此视图可以得到焦点

 

setSelection

void setSelection (int position)

设置当前选择的项目。为了辅助功能,重写该方法的子类必须首先调用父类的该方法。

 

 

【受保护的方法】

canAnimate

boolean canAnimate ()

API 1

指示视图组是否能够在首次布局之后为其子项设置动画。

 

dispatchRestoreInstanceState

void dispatchRestoreInstanceState (SparseArray<Parcelable> container)

API 1

为了防止适配器生成的视图被解冻而重写。

dispatchSaveInstanceState

void dispatchSaveInstanceState (SparseArray<Parcelable> container)

API 1

为了防止适配器生成的视图被冻结而重写。

 

onDetachedFromWindow

void onDetachedFromWindow ()

API 1

当视图从窗口分离时调用。在这一点上,它不再具有用于绘图的surface

 

onLayout

void onLayout (boolean changed, int left, int top, int right, int bottom)

API 1

设置该视图其子视图的大小及位置。派生类可以重写此方法,并为其子类布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值