前言

  本章内容是android.widget.AdapterView,版本为Android 2.3 r1,翻译来自"cnmahj",欢迎大家访问他的博客:​​http://android.toolib.net/blog/​​,再次感谢"cnmahj"!欢迎你一起参与Android API 的中文翻译

 

声明

  欢迎转载,但请保留文章原始出处:)

   

    Android中文翻译组:​​http://code.taobao.org/project/view/404/​


 


 

正文


  一、结构



public abstract class ​AdapterView​​<T extends ​​Adapter​​> extends ​​ViewGroup​

        

java.lang.Object

android.view.View

         android.view.ViewGroup

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

 

直接子类

             ​​AbsListView​​, ​​AbsSpinner​

间接子类

​ExpandableListView​​, ​​Gallery​​, ​​GridView​​, ​​ListView​​, ​​Spinner​


  二、概述



AdapterView 是内容由 ​​Adapter​​ 来决定的视图类。

参见 ​​ListView​​、​​GridView​​、​​Spinner​​ 和 ​​Gallery​​ 等常见子类。


 

  三、常量



  public static final int INVALID_POSITION

  代表无效的位置。有效值的范围是 0 到当前适配器项目数减 1 。

  常量值: -1 (0xffffffff)

 

  public static final long INVALID_ROW_ID

  代表空或者无效的行ID。

  常量值: -9223372036854775808 (0x8000000000000000)

 

  public static final int ITEM_VIEW_TYPE_HEADER_OR_FOOTER

  当条项是列表头或列表尾时,调用 ​​getItemViewType(int)​​ 函数的返回值。

  常量值: -2 (0xfffffffe)

 

  public static final int ITEM_VIEW_TYPE_IGNORE

  当适配器禁止条项的视图再利用时,调用 ​​getItemViewType(int)​​ 函数的返回值。

  常量值: -1 (0xffffffff)


  四、构造函数



  public AdapterView (​​Context​​ context)

  构造函数

 

  public AdapterView (​​Context​​ context, ​​AttributeSet​​ attrs)

  构造函数

 

  public AdapterView (​​Context​​ context, ​​AttributeSet​​ attrs, int defStyle)

  构造函数


  五、公共方法



  public void addView (​​View​​ child)

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

 



  参数

         child  忽略

      异常

        ​​UnsupportedOperationException​​ 调用该方法时


 

 

  public void addView (​​View​​ child, int index)

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

  参数

           child         忽略。

  index       忽略。

  抛出

         ​​UnsupportedOperationException​​ 调用该方法时

 

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

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

 



  参数

           child         忽略。

  index       忽略。


 

  params  忽略。

  抛出

 



         ​​UnsupportedOperationException​​ 调用该方法时


 

 

  public void addView (​​View​​ child, ​​ViewGroup.LayoutParams​​ params)

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

  参数

       child         忽略。

   params  忽略。

  抛出

         ​​UnsupportedOperationException​​ 调用该方法时

 

  public boolean dispatchPopulateAccessibilityEvent (​​AccessibilityEvent​​ event)

  分发 ​​AccessibilityEvent​​ 事件到 ​​该视图​​ 的子视图中。

  参数

         event       事件。

  返回值

  如果事件分发完成,返回真。

 

  public abstract T getAdapter ()

  返回当前与该小部件关联的适配器。

  返回值

  用于提供视图内容的适配器。

 

  public int getCount ()

返回值

与 AdapterView 相关联的适配器的条目数量。(该值是数据条目的数量, 可能大于可见的视图的数量。)

 

  public ​​View​getEmptyView ()

  当前适配器无内容时,AdapterView 会显示特殊的空视图。 空视图用于告诉用户,该 AdapterView 没有数据。

  返回值

  适配器为空时显示的视图。

 

  public int getFirstVisiblePosition ()

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

  返回值

  在适配器数据集中的位置。

 

  public ​​Object​getItemAtPosition (int position)

  取得列表中指定位置的数据。

 



  参数

         position  要取得数据的位置。

  返回值


 

  列表中指定位置的数据。

 

  public long getItemIdAtPosition (int position)

  (译者注:关于此方法的分析,参见这里。)

 

  public int getLastVisiblePosition ()

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

  返回值

  在适配器数据集中的位置。

 

  public final ​​AdapterView.OnItemClickListener​getOnItemClickListener ()

返回值

  点击 AdapterView 中的条目时执行的回调函数;没有设置时返回空。

 

  public final ​​AdapterView.OnItemLongClickListener​getOnItemLongClickListener ()

返回值

取得长按 AdapterView 中的条目时执行的回调函数的监听器;未设置则返回空。

 

  public final ​​AdapterView.OnItemSelectedListener​getOnItemSelectedListener ()

 

  public int getPositionForView (​​View​​ view)

  取得适配器项目对应的视图或其子视图在适配器的数据中所处的位置。

  参数

         view         适配器条目或其后代的视图。调用时该项目在 AdapterView 中必须可见。

  返回值

  视图在适配器数据集中的位置;如果视图不在数据列表中或当前不可见,则返回 ​​INVALID_POSITION​​。

 

  public ​​Object​getSelectedItem ()

返回值

当前选中条目对应的数据;无选中条目时返回空。

 

  public long getSelectedItemId ()

返回值

当前选中条目相应的 ID;无选中条目则返回 ​​INVALID_ROW_ID​​。

 

  public int getSelectedItemPosition ()

  返回当前选中项目在适配器数据中的位置。

  返回值

  返回从零开始的位置(索引)信息,没有选择条目时返回 ​​INVALID_POSITION​​。

 

  public abstract ​​View​getSelectedView ()

返回值

当前选中条目对应的视图;无选中条目时返回空。

 

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

  如果定义了 OnItemClickListener 则调用它。

  参数

  view         AdapterView 中被点击的视图。

  position  视图在适配器中的索引。

  id     点击的条目的行 ID。

  返回值

  如果成功调用了定义的 OnItemClickListener 则返回真;否则返回假。

 

  public void removeAllViews ()

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

  抛出

        ​​UnsupportedOperationException​​调用该方法时

 

  public void removeView (​​View​​ child)

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

  参数

  child         忽略。

  抛出

         ​​UnsupportedOperationException​​调用该方法时

 

  public void removeViewAt (int index)

  该类不支持该方法,如果调用将抛出 UnsupportedOperationException 异常。

  参数

         index       忽略。

  抛出

         ​​UnsupportedOperationException​​调用该方法时

 

  public abstract void setAdapter (T adapter)

  设置用于为该小部件的视图提供用于显示的数据的适配器。

  参数

         adapter  用于创建视图内容的适配器。

 

  public void setEmptyView (​​View​​ emptyView)

  设置适配器内容为空时显示的视图。

 

  public void setFocusable (boolean focusable)


 


 

  设置该视图是否可以获取焦点。 设为假时,可以确保在触控模式中该视图不能得到焦点。

  参数

         focusable         设为真时,该视图可以得到焦点。

 

  public void setFocusableInTouchMode (boolean focusable)

  设置在触控模式下该视图是否可以获取焦点。 设为真时,可以保证视图可以得到焦点。

  参数         

             focusable        设为真时,该视图在触控模式下可以得到焦点。

 

  public void setOnClickListener (​​View.OnClickListener​​ l)

  注册点击该视图时执行的回调函数。如果该视图不可点击,会将其改为可以点击的状态。

  参数

         l       事件发生时运行的回调函数。

 

  public void setOnItemClickListener (​​AdapterView.OnItemClickListener​​ listener)

  注册单击 AdapterView 中的条目时执行的回调函数。

  参数

         listener  将要调用的回调。

 

  public void setOnItemLongClickListener (​​AdapterView.OnItemLongClickListener​​ listener)

  注册长按 AdapterView 中的条目时执行的回调函数。

  参数

         listener  事件发生时运行的回调函数。

 

  public void setOnItemSelectedListener (​​AdapterView.OnItemSelectedListener​​ listener)

  注册选中 AdapterView 中的条目时执行的回调函数。

  参数

         listener  事件发生时运行的回调函数。

 

  public abstract void setSelection (int position)

  设置当前选择条目。为了支持无障碍功能,重写该方法的子类必须首先调用父类的该方法。

  参数

         position  选择的数据条目的索引(从零开始)。

 


  六、保护方法



  protected boolean canAnimate ()

  指示视图组是否能够在首次布局后为其子视图提供动画效果的显示。

  返回值

  如果子视图可以使用动画效果则返回真,否则返回假。

 

  protected void dispatchRestoreInstanceState (SparseArray<Parcelable> container)

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

  参数

          container    保存有之前存储的状态信息的 SparseArray。

 

  protected void dispatchSaveInstanceState (SparseArray<Parcelable> container)

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

  参数

          container    保存视图状态的 SparseArray。

 

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

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

  参数

  changed     是否为视图设置了新的大小和位置。

  left相对于父视图的左侧的位置。

  top相对于父视图的顶部的位置。

  right    相对于父视图的右侧的位置。

  bottom相对于父视图的底部的位置。