首页 文章 精选 留言 我的

精选列表

搜索[API],共10000篇文章
优秀的个人博客,低调大师

Android中文 API (31) —— TimePicker

正文 一、结构 public classTimePickerextendsFrameLayout java.lang.Object android.view.View android.view.ViewGroup android.widget.FrameLayout android.widget.TimePicker 二、概述 用于选择一天中时间的视图,支持24小时及上午/下午模式。小时,分钟及上午/下午(如果可用)都可以用垂直滚动条来控制。用键盘来输入小时。两个数的小时数可以通过输入两个数字来实现,例如在一定时间内输入‘1’和‘2’即选择了12点。分钟能显示输入的单个数字。在AM/PM模式下,用户可以输入'a', 'A"或'p', 'P'来选取。对于对话框视图,参见TimePickerDialog。 三、公共方法 public int getBaseline () 返回窗口空间的文本基准线到其顶边界的偏移量。如果这个部件不支持基准线对齐,这个方法返回-1/。 返回值 基准线的偏移量,如果不支持基准线对齐则返回-1。 public Integer getCurrentHour () 获取当前时间的小时部分。 返回值 当前小时(0-23) public Integer getCurrentMinute () 获取当前时间的分钟部分。 返回值 当前分钟。 public boolean is24HourView () 获取当前系统设置是否是24小时制。 返回值 如果是24小时制返回true,否则返回false。 public void setCurrentHour (Integer currentHour) 设置当前小时。 public void setCurrentMinute (Integer currentMinute) 设置当前分钟(0-59)。 public void setEnabled (boolean enabled) 设置可用的视图状态。可用的视图状态的解释在子类中改变。 参数 enabled如果可用为true,否则为false。 public void setIs24HourView (Boolean is24HourView) 设置是24小时还是上午/下午制。 参数 is24HourView True表示24小时制. False表示上午/下午制. public void setOnTimeChangedListener (TimePicker.OnTimeChangedListener onTimeChangedListener) 设置时间调整事件的回调函数。 参数 onTimeChangedListener回调函数,不能为空。 四、受保护方法 protected void onRestoreInstanceState (Parcelable state) 允许一个视图回复到之前用onSaveInstanceState()保存的状态,state参数不能为空。 参数 state之前调用onSaveInstanceState()返回的状态。 protected Parcelable onSaveInstanceState () 用来允许一个视图保存当前的内部状态,之后可以创建新的实例应用相同的状态。状态信息不能包含常量或在之后重新构造。例如,你永远不能保存在屏幕上的当前位置,因为当创建一个新的视图时,它将会被放置到它的层次结构中,它的位置会被重新计算。 你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。 返回值 返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582644,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (29) —— CompoundButton

正文 一、结构 public abstract classCompoundButtonextendsButtonimplementsCheckable java.lang.Objectandroid.view.Viewandroid.widget.TextViewandroid.widget.Button android.widget.CompoundButton 二、概述 一个带有选中/未选中状态的按钮。当按钮按下或点中时自动改变状态。 三、公共方法 public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event) 在子视图的构建时分派一个辅助事件。(译者注:通过源码可以看出,视图构建时设置其选中状态。) 参数 event 事件 返回值 如果事件全部完成返回True。 public boolean isChecked () (译者注:是否选中) public void onRestoreInstanceState (Parcelable state) 允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态。 参数 state 返回以前调用onSaveInstanceState()保存下来的状态。 public Parcelable onSaveInstanceState () 允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这种状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏幕上的位置,因为这会在视图的层面上重新计算放置一个新的实例。 你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。 返回值 返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null。 public boolean performClick () 如果视图定义了OnClickListener监听器,调用此方法来执行。 返回值 定义了的OnClickListener被调用返回True,否则返回False public void setButtonDrawable (Drawable d) 给按钮背景设置一个可绘制对象(如:图像) 参数 d 用作背景的可绘制对象(如:图像) public void setButtonDrawable (int resid) 通过资源Id给按钮背景设置一个图像 参数 resid 作为背景图像的资源id public void setChecked (boolean checked) 改变按钮的选中状态 参数 checked true选中,false非选中 public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener) 注册一个在按钮状态发生改变时执行的回调函数 参数 listener 当选中状态改变时调用的函数 public void toggle () 改变选中状态为当前状态的逆状态 四、受保护方法 protected void drawableStateChanged () 在视图状态的变化影响到所显示可绘制的状态时调用这个方法。 确保在重载时中调用父类方法 protected int[] onCreateDrawableState (int extraSpace) 为当前视图生成新的可绘图区状态。这个方式当缓存的图像绘图区状态确定失效时通过视图系统调用。你可以使用getDrawableState()方法重新取得当前的状态。 参数 extraSpace 如果为非零,这是你应该返回的数组在你可以存放你的状态的额外条目的数量。 返回值 返回一个记录着视图中当前绘图区状态的数组 protected void onDraw (Canvas canvas) 实现你自己的绘制。 参数 canvas 在画布上绘制背景 protected boolean verifyDrawable (Drawable who) 如果你的视图子类显示他自己的可视化对象,他将要重写此方法并且为了显示可绘制返回true。此操作允许进行绘制时有动画效果。 确认当重写从方法时,需调用父类相应方法。 参数 who 需判断的可绘制对象(Drawable)。如果是你要显示的对象,返回True,否则返回调用父类的结果。 返回值 boolean如果可绘制对象(Drawable)已经在视图中显示,返回True否则返回false。并且此处不允许使用动画。 结束 Android2.3即将发布,翻译组也将迅速跟进,已经翻译或正在翻译的将保持原有版本,新开始翻译的将直接从新版本开始。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582647,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (21) —— DigitalClock

正文 一、结构 public classDigitalClockextendsTextView java.lang.Object android.view.View android.widget.TextView android.widget.DigitalClock 二、 概述 像AnalogClock(),但是是数字的。显示秒。修正:分开显示小时/分钟/秒,均衡的字体不能够摆动显示。(译者注:根据字体按比例显示小时/分钟/秒,无法像AnalogClock转动显示) 三、 受保护方法 protected void onAttachedToWindow () 视图(DigitalClock)附在一个窗体上时调用。在这个点的表面进行绘制。注意这个方法保证在onDraw(Canvas)以前调用,但是它可以在第一次调用onDraw以前任何时间调用——包括onMeasure(int, int)之前或之后。 protected void onDetachedFromWindow () 视图(DigitalClock)从窗体上分离(移除)时调用。在这个点的表面不再有画面绘制。 四、补充 4.1 [Android1.5]DigitalClock自定义日期输出格式 4.2 使用代码 < DigitalClock android:id = " @+id/DigitalClock " android:layout_width = " wrap_content " android:layout_height = " wrap_content " /> 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582669,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(99)—— RelativeLayout

正文 一、结构 public classRelativeLayout extendsViewGroup java.lang.Object android.view.View android.view.ViewGroup android.widget.RelativeLayout 直接子类 DialerFilter, TwoLineListItem 二、概述 RelativeLayout顾名思义,相对布局,在这个容器内部的子元素们可以使用彼此之间的相对位置或者和容器间的相对位置来进行定位。 注意,不能在RelativeLayout容器本身和他的子元素之间产生循环依赖,比如说,不能将RelativeLayout的高设置成为WRAP_CONTENT的时候将子元素的高设置成为ALIGN_PARENT_BOTTOM。 (译者注:这点额外要注意,当然这也很好理解,如果容器是不定高的,那么子元素当然无法对齐容器的底边^_^)。 可以参考官方 SDK 中的 RelativeLayout 教学贴 Relative Layout tutorial 三、常量 数据类型 常量名称 描述 int ABOVE 定义将元素的底边对齐另一个元素的顶边 int ALIGN_BASELINE 定义将元素基线的对齐另一个元素的基线 int ALIGN_BOTTOM 定义将元素底边的对齐另一个元素的底边 int ALIGN_LEFT 定义将元素的左边对齐另一个元素的左边 int ALIGN_PARENT_BOTTOM 定义将元素的底边对齐其父容器(RelativeLayout)的底边 int ALIGN_PARENT_LEFT 定义将元素的左边对齐其父容器(RelativeLayout)的左边 int ALIGN_PARENT_RIGHT 定义将元素的右边对齐其父容器(RelativeLayout)的右边 int ALIGN_PARENT_TOP 定义将元素的顶边对齐其父容器(RelativeLayout)的顶边 int ALIGN_RIGHT 定义将元素的右边对齐另一个元素的右边 int ALIGN_TOP 定义将元素的顶边对齐另一个元素的顶边 int BELOW 定义将元素的顶边对齐另一个元素的底边 int CENTER_HORIZONTAL 定义让元素在容器(RelativeLayout)内水平居中 int CENTER_IN_PARENT 定义让元素位于容器(RelativeLayout)的中心 int CENTER_VERTICAL 定义让元素在容器(RelativeLayout)内垂直居中 int LEFT_OF 定义将元素的右边对齐另一个元素的左边 int RIGHT_OF 定义将元素的左边对齐另一个元素的右边 int TRUE 四、内部类 Class RelativeLayout.LayoutParams 和RelativeLayout相关联的布局信息. 五、XML属性 属性名称 描述 android:gravity 设置容器中的内容该如何定位。对象本身的x和y轴。 android:ignoreGravity 设置容器中的哪个子元素会不受Gravity的影响. (译者注:接收参数:子元素的Id,如果设置成为0,则全部子元素都会受到影响) 六、公共方法 public booleandispatchPopulateAccessibilityEvent(AccessibilityEvent event) 分发AccessibilityEvent事件到该View的子视图中。 参数 event 事件本身. 返回值 如果事件分发完成,返回真。 public RelativeLayout.LayoutParamsgenerateLayoutParams(AttributeSet attrs) 返回一个新的已设置属性集合的布局参数。 参数 attrs 构建layout布局参数的属性集合. 返回值 一个RelativeLayout.LayoutParams的实例或者他的一个子类 public intgetBaseline() 返回窗口空间的文本基准线到其顶边界的偏移量。如果这个部件不支持基准线对齐,这个方法返回-1。 返回值 基准线的偏移量,如果不支持基准线对齐则返回-1 public voidrequestLayout() 当容器中的某个视图发生改变,会影响整个布局时,就调用这个方法,他会改变整个视图树的布局。 public voidsetGravity(int gravity) 描述子视图该如何摆放,默认值是Gravity.LEFT | Gravity.TOP(译者注:说明RelativeLayout的元素如果不设置位置,会从左上角开始堆叠)。 参数 gravity 位置值,可以参考Gravity 相关的XML属性 android:gravity 参见 setHorizontalGravity(int) setVerticalGravity(int) public voidsetHorizontalGravity(int horizontalGravity) public voidsetVerticalGravity(int verticalGravity)) public voidsetIgnoreGravity(int viewId) 定义容器中的那个VIew会忽略容器设置的Gravity,如果容器设置的Gravity是Gravity.LEFT | Gravity.TOP时,定义这个属性没有任何效果。 参数 viewId将要忽略容器Gravity的视图的id,设置为0则不会有任何View忽略Gravity. 相关的XML属性 android:ignoreGravity 参见 setGravity(int) 七、受保护方法 protected booleancheckLayoutParams(ViewGroup.LayoutParams p) (译者注:检测是不是AbsoluteLayout.LayoutParams的实例) protected ViewGroup.LayoutParams generateDefaultLayoutParams() 返回一组宽度为WRAP_CONTENT,高度为WRAP_CONTENT,坐标是(0,0)的布局参数。 返回值 一组默认的布局参数或null值。 protected ViewGroup.LayoutParamsgenerateDefaultLayoutParams( ViewGroup .LayoutParams p) 返回一组合法的受支持的布局参数。当一个ViewGroup传递一个布局参数没有通过checkLayoutParams(android.view.ViewGroup.LayoutParams)检测的视图时,此方法被调用。此方法会返回一组新的适合当前ViewGroup的布局参数,可能从指定的一组布局参数中复制适当的属性。 参数 p 被转换成一组适合当前ViewGroup的布局参数. 返回值 一个ViewGroup.LayoutParams的实例或者其中的一个子节点 protected voidonLayout(boolean changed, int l, int t, int r, int b) 在此视图view给他的每一个子元素分配大小和位置时调用。派生类可以重写此方法并且重新安排他们子类的布局。 参数 changed这是当前视图view的一个新的大小或位置 l相对于父节点的左边位置 t相对于父节点的顶点位置 r相对于父节点的右边位置 b相对于父节点的底部位置 public voidonMeasure(int widthMeasureSpec, int heightMeasureSpec) 测量视图以确定其内容宽度和高度。此方法被measure(int, int)调用。需要被子类重写以提供对其内容准确高效的测量。 约定:当重写此方法时,你必须调用setMeasuredDimension(int, int)来保存当前视图view的宽度和高度。不成功调用此方法将会导致一个IllegalStateException异常,是由measure(int, int)抛出。所以调用父类的onMeasure(int, int)方法是必须的。 父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。子类可以重写onMeasure(int,int)以对其内容提供更佳的尺寸。 如果此方法被重写,那么子类的责任是确认测量高度和测量宽度要大于视图view的最小宽度和最小高度(getSuggestedMinimumHeight() and getSuggestedMinimumWidth()),使用这两个方法可以取得最小宽度和最小高度。 参数 widthMeasureSpec 强加于父节点的横向空间要求。要求是使用View.MeasureSpec进行编码。 heightMeasureSpec强加于父节点的纵向空间要求。要求是使用View.MeasureSpec进行编码。 八、补充 文章精选 [Android学习指南]相对布局RelativeLayout Android RelativeLayout属性 RelativeLayout排版_免寫程式[blogspot] 示例代码 <? xmlversion="1.0"encoding="utf-8" ?> < RelativeLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < TextView android:id ="@+id/label" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="Typehere:" /> < EditText android:id ="@+id/entry" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:background ="@android:drawable/editbox_background" android:layout_below ="@id/label" /> < Button android:id ="@+id/ok" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_below ="@id/entry" android:layout_alignParentRight ="true" android:layout_marginLeft ="10dip" android:text ="OK" /> < Button android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_toLeftOf ="@id/ok" android:layout_alignTop ="@id/ok" android:text ="Cancel" /> </ RelativeLayout > 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582395,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(95)——SimpleExpandableListAdapter

正文 一、结构 public abstract classSimpleExpandableListAdapter extendsBaseExpandableListAdapter java.lang.Object android.widget.BaseExpandableListAdapter android.widget.SimpleExpandableListAdapter 二、概述 一个使用Map存储组元素和子元素的静态数据,使用XML资源文件定义组元素和子元素View如何显示的简单适配器。你可以区分指定组元素返回的数据是List<Map>类型。在ArrayList中的每个实体对应ExpandalbeList中的一个组。实体中的Map列表包含了组下的每行数据。你也可以指定一个XML文件来定义用于在组元素的View的显示。此时Map中的键值将与指定的View(XML中定义的view id)对应起来。子元素的处理情况类似。注意当可折叠的深度若不只1层,返回的数据将被指定为List类型。首个List对应子元素中所代表的组,第二个List对应孙子元素在子元素组中的位置。Map亦将支持这样的特殊元素。(子元素嵌套组元素的情况) (译者注: ExpandableList 支持深度大于 1 的情况。在 andorid 自带的 ApiDomos 的例子中有这个的代码: App/View/ExpandableList3 )。 三、构造函数 publicSimpleExpandableListAdapter(Contextcontext,List<?extendsMap<String,?>> groupData, int groupLayout,String[]groupFrom, int[] groupTo,List<?extendsList<?extendsMap<String,?>>> childData, int childLayout,String[]childFrom, int[] childTo) 构造函数 参数 context 与SimpleExpandableListAdapter关联的ExpandableListView的上下文。 groupData一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。 groupLayout 显示组元素的资源文件。该资源文件定义了如何显示组元素。该布局文件必须至少包括groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到) groupFrom一个键值列表。对应与组相关联的Map中的键值。 grouptTo组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。 childData 一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。 childLayout显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到) childFrom 定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。 childTo子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。 publicSimpleExpandableListAdapter(Contextcontext,List<?extendsMap<String,?>> groupData, int expandedGroupLayout, int collapsedGroupLayout,String[]groupFrom, int[] groupTo,List<?extendsList<?extendsMap<String,?>>> childData, int childLayout,String[]childFrom, int[] childTo) 构造函数。 参数 context 与SimpleExpandableListAdapter关联的ExpandableListView的上下文。 groupData一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。 expandedGroupLayout定义组展开时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到) collapasedGroupLayout定义组折叠时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到) groupFrom一个键值列表。对应与组相关联的Map中的键值。 grouptTo组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。 childData 一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。 childLayout显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到) childFrom 定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。 childTo子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。 publicSimpleExpandableListAdapter(Contextcontext,List<?extendsMap<String,?>> groupData, int expandedGroupLayout, int collapsedGroupLayout,String[]groupFrom, int[] groupTo,List<?extendsList<?extendsMap<String,?>>> childData, int childLayout, int lastChildLayout,String[]childFrom, int[] childTo) 构造函数。 参数 context 与SimpleExpandableListAdapter关联的ExpandableListView的上下文。 groupData一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。 expandedGroupLayout 定义组展开时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到) collapasedGroupLayout 定义组折叠时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到) groupFrom一个键值列表。对应与组相关联的Map中的键值。 grouptTo 组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。 childData 一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。 childLayout显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到) lastChildLayout定义每组中最后一个子元素的View资源布局情况。该布局文件应当至少包括所有在childTo中所定义的View。(即childTo中的View id数组必须都在该布局文件中找到) childFrom 定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。 childTo子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。 四、公共方法 publicObjectgetChild(int groupPosition, int childPosition) public longgetChildId(int groupPosition, int childPosition) (译者注:获取与在给定组给予孩子相关的数据。) publicViewgetChildView(int groupPosition, int childPosition, boolean isLastChild,ViewconvertView,ViewGroupparent) (译者注:获取子项) public intgetChildrenCount(int groupPosition) (译者注:返回在指定Group的Child数目。) publicObjectgetGroup(int groupPosition) public intgetGroupCount() (译者注:返回Group的总数目。) public longgetGroupId(int groupPosition) publicViewgetGroupView(int groupPosition, boolean isExpanded,ViewconvertView,ViewGroupparent) (译者注:获取父项) public booleanhasStableIds() public booleanisChildSelectable(int groupPosition, int childPosition) (译者注:是否让child获得焦点) publicViewnewChildView(boolean isLastChild,ViewGroupparent) 新建一个子元素View。 参数 isLastChild该child是否是组中的最后一个元素 parent 新的View的最终父亲。 返回 新的子元素View对象。 publicViewnewGroupView(boolean isExpanded,ViewGroupparent) 新建一个组元素View。 参数 isExpanded该组元素是否当前处于折叠状态 parent新View的最终父亲。 返回 新的组元素View对象。 五、补充 文章精选 ExpandableListActivity和SimpleExpandableListAdapter的使用方法 Expandable lists[blogspot] 示例代码: List < Map < String,String >> groupData = new ArrayList < Map < String,String >> (); List < List < Map < String,String >>> childData = new ArrayList < List < Map < String,String >>> (); for ( int i = 0 ;i < 20 ;i ++ ){ Map < String,String > curGroupMap = new HashMap < String,String > (); groupData.add(curGroupMap); curGroupMap.put(NAME, " Group " + i); curGroupMap.put(IS_EVEN,(i % 2 == 0 ) ? " Thisgroupiseven " : " Thisgroupisodd " ); List < Map < String,String >> children = new ArrayList < Map < String,String >> (); for ( int j = 0 ;j < 15 ;j ++ ){ Map < String,String > curChildMap = new HashMap < String,String > (); children.add(curChildMap); curChildMap.put(NAME, " Child " + j); curChildMap.put(IS_EVEN,(j % 2 == 0 ) ? " Thischildiseven " : " Thischildisodd " ); } childData.add(children); } // Setupouradapter mAdapter = new SimpleExpandableListAdapter( this , groupData, android.R.layout.simple_expandable_list_item_1, new String[]{NAME,IS_EVEN}, new int []{android.R.id.text1,android.R.id.text2}, childData, android.R.layout.simple_expandable_list_item_2, new String[]{NAME,IS_EVEN}, new int []{android.R.id.text1,android.R.id.text2} ); 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582403,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(96)——SoundEffectConstants

正文 一、结构 public classSoundEffectConstantsextendsObject java.lang.Object android.view.SoundEffectConstants 二、概述 playSoundEffect(int)所需的播放声效设定常量。 三、常量 public static final int CLICK (译者注:单击事件)常量,取值0 (0x00000000) public static final int NAVIGATION_DOWN (译者注:View.FOCUS_DOWN)常量,取值4 (0x00000004) public static final int NAVIGATION_LEFT (译者注:View.FOCUS_LEFT)常量,取值1 (0x00000001) public static final int NAVIGATION_RIGHT (译者注:View.FOCUS_RIGHT)常量,取值3 (0x00000003) public static final int NAVIGATION_UP (译者注:View.FOCUS_UP)常量,取值2 (0x00000002) 四、公共方法 public static intgetContantForFocusDirection(int direction) 针对不同声音方向,获得相应的发声常数。 参数 direction参数取值为以下常量之一:FOCUS_UP,FOCUS_DOWN,FOCUS_LEFT,FOCUS_RIGHT,FOCUS_FORWARD,FOCUS_BACKWARD. 返回值 合适的发声常数 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582401,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android API 中文 (50) —— SpinnerAdapter

正文 一、结构 public interfaceSpinnerAdapterextendsAdapter 直接子类 ArrayAdapter<T>, BaseAdapter, CursorAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter 二、概述 扩展自Adapter的适配器是在Spinner与数据之间的一座桥梁。一个Spinner Adapter允许定义两个不同的视图:一是在Spinner上显示数据,另一个是当Spinner按下时在下拉列表里显示数据。 三、公共方法 public abstractViewgetDropDownView(int position,ViewconvertView,ViewGroupparent) 获得一个在指定位置上显示下拉弹出数据的视图。 参数 position项目视图的索引 convertView如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图 parent视图最终将依附的父对象 返回值 一个对应指定位置的数据的视图 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582583,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android API 中文 (54) —— Filterable

正文 一、结构 public interfaceFilterable android.widget. SpinnerAdapter 直接子类 ArrayAdapter<T>, CursorAdapter, CursorTreeAdapter, HeaderViewListAdapter, ResourceCursorAdapter, ResourceCursorTreeAdapter, SimpleAdapter, SimpleCursorAdapter, SimpleCursorTreeAdapter 二、概述 定义一个可过滤的行为。一个可过滤的类可以通过一个过滤器筛选它的数据。过滤类通常由适配器(Adapter)实现。 三、公共方法 public abstractFiltergetFilter() 返回一个可以通过一种过滤模式来约束数据的过滤器。 这个方法通常被Adapter类实现。 返回值 一个用于约束数据的过滤器 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582573,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(126) —— Message

结构 继承关系 public final classMessage extendsObjectimplementsParcelable java.lang.Object android.os.Message 类概述 定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作。 尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(),这样是从一个可回收对象池中获取Message对象。 字段 public static final Creator<Message>CREATOR public intarg1 如果只需要存储几个整型数据,arg1和arg2是setData()的低成本替代品。 public intarg2 如果只需要存储几个整型数据,arg1和arg2是setData()的低成本替代品。 public Objectobj 发送给接收器的任意对象。当使用Message对象在线程间传递消息时,如果它包含一个Parcelable的结构类(不是由应用程序实现的类),此字段必须为非空(non-null)。其他的数据传输则使用setData(Bundle)方法。 注意Parcelable对象是从FROYO版本以后才开始支持的。 public MessengerreplyTo 指明此message发送到何处的可选Messenger对象。具体的使用方法由发送者和接受者决定。 public intwhat 用户自定义的消息代码,这样接受者可以了解这个消息的信息。每个handler各自包含自己的消息代码,所以不用担心自定义的消息跟其他handlers有冲突。 公共构造器 public Message() 构造器(但是获取Message对象的最好方法是调用Message.obtain())。 公共方法 public voidcopyFrom(Message o) 使此message跟参数o相似。浅拷贝数据域。不拷贝源message的链表字段,时间戳和目标/回调。 public intdescribeContents() 描述了包含在Parcelable对象排列信息中的特殊对象的类型。 返回值 一个标志位,表明Parcelable对象特殊对象类型集合的排列。 public RunnablegetCallback() 获取回调对象,此对象会在message处理时执行。此对象必须实现Runnable接口。回调由接收此消息并分发的目标handler调用。如果没有设置回调,此消息会分发到接收handler的handleMessage(Message)。 public BundlegetData() 获取附加在此事件上的任意数据的Bundle对象,需要时延迟创建。通过调用setData(Bundle)来设置Bundle的值。需要注意的是,如果通过Messenger对象在进程间传递数据时,需要调用Bundle类的Bundle.setClassLoader()方法来设置ClassLoader,这样当接收到消息时可以实例化Bundle里的对象。 参考 peekData() setData(Bundle) public HandlergetTarget() 获取将接收此消息的Handler对象。此对象必须要实现Handler.handleMessage()方法。每个handler各自包含自己的消息代码,所以不用担心自定义的消息跟其他handlers有冲突。 public longgetWhen() 返回此消息的传输时间,以毫秒为单位。 public static Messageobtain(Handler h, int what, int arg1, int arg2, Object obj) 与obtain()一样,但是设置了target, what, arg1, arg2和obj的值。 参数 h设置的target值 what设置的what值 arg1设置的arg1值 arg2设置的arg2值 obj设置的obj值 返回值 从全局池中分配的一个Message对象。 public static Messageobtain(Handler h, int what, Object obj) 与obtain()一样,但是设置了target, what和obj的值。 参数 h设置的target值 what 设置的what值 obj设置的obj值 返回值 从全局池中分配的一个Message对象。 public static Messageobtain(Handler h, int what) 与obtain()一样,但是设置了target和what的值。 参数 h target的值 what what的值 返回值 从全局池中分配的一个Message对象。 public static Messageobtain(Handler h) 与obtain()一样,但是设置了target的值 参数 h消息对象的target成员的值 返回值 从全局池中分配的一个Message对象。 public static Messageobtain(Handler h, Runnable callback) 与obtain(Handler)一样,但是设置回调函数,在Message返回时调用。 参数 h消息对象的target成员的值 callback当消息处理时会调用的回调函数 返回值 从全局池中分配的一个Message对象。 public static Messageobtain() 从全局池中返回一个新的Message实例。在大多数情况下这样可以避免分配新的对象。 public static Messageobtain(Handler h, int what, int arg1, int arg2) 与obtain()一样,但是设置了target, what, arg1和arg2的值 参数 h设置的targe值 what设置的what值 arg1设置的arg1值 arg2设置的arg2值 返回值 从全局池中分配的一个Message对象。 public static Messageobtain(Message obj) 同obtain(),但是从一个已存在的消息中拷贝值(包括它的目标)。 参数 orig要拷贝的源消息 返回值 从全局池中分配的一个Message对象。 public BundlepeekData() 与getData()相似,但是并不延迟创建Bundle。如果Bundle对象不存在返回null。更多信息见getData()。 参考 getData() setData(Bundle) public voidrecyle() 向全局池中返回一个Message实例。一定不能在调用此函数后再使用Message——它会立即被释放。 public voidsendToTarget() 向Handler发送此消息,getTarget()方法可以获取此Handler。如果这个字段没有设置会抛出个空指针异常。 public voidsetData(Bundle data) 设置一个任意数据值的Bundle对象。如果可以,使用arg1和arg2域发送一些整型值以减少消耗。 参考 getData() peekData() public voidsetTarget(Handler target) 设置将接收此消息的Handler对象。 public StringtoString() 返回一个Message对象简单的,可读懂的描述信息。鼓励子类重写此方法,实现时最好把对象的类型的数据考虑进去。默认的实现等同与以下表达式: 如果需要实现toString方法,参考Writing a useful toString method。 返回值 一个代表此对象的可打印字符串 public voidwriteToParcel(Parcel dest, int flags) 将类的数据写入外部提供的Parcel中 参数 dest对象被写入的Parcel flags对象如何被写入的附加标志,可能是0或PARCELABLE_WRITE_RETURN_VALUE。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/595409,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(124) —— DialerFilter

结构 继承关系 public static interfaceView.OnClickListner android.view.View.OnClickListener 子类及间接子类 间接子类 CharacterPickerDialog, KeyboardView, QuickContactBadge 类概述 (译者注:拨号器过滤,暂时不清楚使用方法和场景。) 常量 public static final int DIGITS_AND_LETTERS 该模式包含两行。 常量值:1 (0x00000001) public static final int DIGITS_AND_LETTERS_NO_DIGITS DIGITS_AND_LETTERS模式开始后,过滤器移除了所有匹配的数字,只剩字母行时的模式。 常量值:2 (0x00000002) public static final int DIGITS_AND_LETTERS_NO_LETTERS DIGITS_AND_LETTERS模式开始后,过滤器移除了所有匹配的字母,只剩数字行时的模式。 常量值:3 (0x00000003) public static final int DIGITS_ONLY 该模式只有数字行。 常量值:4 (0x00000004) public static final int LETTERS_ONLY 该模式只有字母行。 常量值:5 (0x00000005) 公共方法 public voidappend(String text) public voidclearText() 清除数值和过滤器文本。 public CharSequencegetDigits() public CharSequencegetFilterText() public CharSequencegetLetters() public intgetMode() public booleanisQwertyKeyboard() public booleanonKeyDown(int keyCode, KeyEvent event) KeyEvent.Callback.onKeyMultiple()的默认实现.如果视图可用并可按,当按下KEYCODE_DPAD_CENTER或KEYCODE_ENTER时执行视图的按下事件. 参数 keyCode表示按下的键的、在KEYCODE_ENTER中定义的键盘代码. event KeyEvent对象,定义了按钮动作. 返回值 如果处理了事件,返回真.如果允许下一个事件接受器处理该事件,可以返回假. public booleanonKeyUp(int keyCode, KeyEvent event) KeyEvent.Callback.onKeyMultiple()的默认实现.当释放KEYCODE_DPAD_CENTER或KEYCODE_ENTER时执行视图的单击事件. 参数 keyCode表示按下的键的、在KEYCODE_ENTER中定义的键盘代码. event KeyEvent对象,定义了按钮动作. 返回值 如果处理了事件,返回真.如果允许下一个事件接受器处理该事件,可以返回假. public voidremoveFilterWatcher(TextWatcher watcher) public voidsetDigitsWatcher(TextWatcher watcher) public voidsetFilterWatcher(TextWatcher watcher) public voidsetLettersWatcher(TextWatcher watcher) public voidsetMode(int newMode) 改变小部件的模式。 参数 newMode变更的目标模式。 受保护方法 protected voidonFinishInflate() 根据XML生成视图工作完成.该函数在生成视图的最后调用,在所有子视图添加完之后。 即使子类覆盖了onFinishInflate方法,也应该调用父类的方法,使该方法得以执行。 protected voidonFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) 如果有图标,只是在得到焦点时显示图标视图。 参数 focused 如果视图具有焦点,值为真;否则为假. direction当调用requestFocus()为该视图设置焦点时,该值为焦点移动的方向.其值为FOCUS_UP、FOCUS_DOWN、FOCUS_LEFT或者FOCUS_RIGHT.当使用无参数的requestFocus()时,可能无值. previouslyFocusedRect失去焦点的视图的矩形坐标,使用该视图的坐标系统.如果指定了,它将传入可以知道焦点来自哪里的详细信息(作为对direction的补充).否则,其值为null。 protected voidonModeChange(int oldMode, int newMode) 在模式变更后调用,为子类提供可以用于重新更改风格的等附加操作的机会。 补充 示例代码 <?xmlversion="1.0"encoding="utf-8"?> <DialerFilterandroid:id="@+id/dialer_filter" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditTextandroid:id="@android:id/hint" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:drawable/editbox_background"/> <EditTextandroid:id="@android:id/primary" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@android:id/hint"/> </DialerFilter> 测试代码 DialerFilterTest.java 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/587330,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(128) —— HandlerThread

结构 继承关系 public classHandleThread extendsThread java.lang.Object java.lang.Thread android.os.HandlerThread 类概述 用于方便的创建一个含有looper的线程类。looper用来创建handler类。请注意,仍然需要调用start()方法。 构造函数 public HandlerThread (String name) 构造一个HandlerThread publicHandlerThread(String name, int priority) 构造一个HandlerThread 参数 priority运行线程的优先级,这个值是由Android.os.Process提供而不是来自java.lang.Thread. 公共方法 public LoopergetLooper() 这个方法返回与此线程相关的Looper。如果该线程不能启动或是由于某种原因isAlive()方法返回false,则这个方法返回null,假如这个线程已经启动,那么此方法将阻塞,直到looper被初始化。 返回值 Looper public intgetThreadId() 返回线程的标志。详见:Process.myTid() public booleanquit() 查看当前运行的looper是否已经退出。假如线程这未启动或者已经结束(即getLooper()方法返回null),这个方法将返回false。否则looper被要求退出并返回true。 public voidrun() 调用设置Runnable对象的run()方法。如果没有设置Runnable,什么也不做。 受保护方法 protected voidonLooperPrepared() 如果需要在Looper循环之前执行一些设置,可明确继承该回调方法。 (译者注:如下代码: void run(){ mTid = Process.myTid(); Looper.prepare(); // 创建一个Looper实例,并且存储在ThreadLocal中,ThreadLocal中维护一个HashMap,键是线程号 synchronized ( this ){ mLooper = Looper.myLooper(); // 得到当前线程的Looper,就是刚才perpare方法中创建并存储的那个Looper实例 Process.setThreadPriority(mPriority); notifyAll(); } onLooperPrepared(); Looper.loop(); // 开始轮询 mTid = - 1 ; ) 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/613749,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (25) —— ZoomControls

正文 一、结构 public classZoomControlsextendsLinearLayout java.lang.Object android.view.View android.view.ViewGroup android.widget.LinearLayout android.widget.ZoomControls 二、概述 ZoomControls显示一个简单的设置来控制缩放并回调已注册的事件。 三、 公共方法 public boolean hasFocus () 如果这个视图获得了焦点就返回真。 返回值 如果这个视图获得了焦点就返回真。 public void hide () 这个方法可以将zoomControl视图隐藏起来,不显示。 public boolean onTouchEvent (MotionEvent event) 这个方法处理触摸屏移动事件。 参数 event该移动事件. 返回值 如果是true,该事件是触摸,反之返回false。 public void setIsZoomInEnabled (boolean isEnabled) 这个方法可以设置放大按钮是否可用。 参数 isEnabled如果是true,放大按钮可用,反之不可用(按钮变成灰色)。 public void setIsZoomOutEnabled (boolean isEnabled) 这个方法可以设置缩小按钮是否可用。 参数 isEnabled如果是true缩小按钮可用,反之不可用(按钮变成灰色)。 public void setOnZoomInClickListener (View.OnClickListener listener) 注册放大监听器 参数 Listener点击放大按钮事件触发的事件。(译者注:为OnClickListener的实例,可以复写onClick方法,里面为具体的响应动作。我感觉这个方法还有下面的方法是本类的重点,我们可以在里面实现相应的动作,来响应我们的事件。) public void setOnZoomOutClickListener (View.OnClickListener listener) 注册缩小监听器 参数 Listener点击缩小按钮事件触发的事件。(译者注:为OnClickListener的实例,可以复写onClick方法,里面为具体的响应动作。) public void setZoomSpeed (long speed) 设置缩放速度。 参数 Speed缩放速度 public void show () 这个方法和hide方法对应,用来显示ZoomControl。 四、 补充 4.1 文章链接 [荐]Android控件之ZoomControls缩放控件 地图时让ZoomContrls一直显示 [荐]ZoomControls在Google Map中的使用 4.2 示例代码(译者声明:这个代码部分思路来源于网络上一个博客,谨以此来解释,特此声明。) 4.2.1 java文件 public class ZoomCotroltest extends Activity{ @Override protected void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); this .setContentView(R.layout.main); setTitle( " ZoomControls " ); ZoomControlszoomControls = (ZoomControls) this .findViewById(R.id.zoomControls); zoomControls.hide(); zoomControls.show(); // setOnZoomInClickListener()-响应单击放大按钮的事件 zoomControls.setIsZoomInEnabled( true ); zoomControls.setIsZoomOutEnabled( true ); zoomControls.setOnZoomInClickListener( new OnClickListener(){ public void onClick(Viewv){ Toast.makeText(ZoomCotroltest. this , " 单击了放大按钮 " ,Toast.LENGTH_SHORT).show(); } }); // setOnZoomOutClickListener()-响应单击缩小按钮的事件 zoomControls.setOnZoomOutClickListener( new OnClickListener(){ public void onClick(Viewv){ Toast.makeText(ZoomCotroltest. this , " 单击了缩小按钮 " ,Toast.LENGTH_SHORT).show(); } }); } } 4.2.2 xml文件 <? xmlversion="1.0"encoding="utf-8" ?> < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:orientation ="vertical" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > <!-- 放大/缩小按钮控件 --> < ZoomControls android:id ="@+id/zoomControls" android:layout_width ="wrap_content" android:layout_height ="wrap_content" > </ ZoomControls > </ LinearLayout > 4.2.3 代码下载 /Files/over140/2010/10/demo_ZoomControls.rar 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582657,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (18) —— AbsSeekBar

正文 一、结构 publicabstractclassAbsSeekBarextendsProgressBar java.lang.Object android.view.View android.widget.ProgressBar android.widget.AbsSeekBar 二、类概述 此类为抽象类。供拖动条SeekBar和评分条RatingBar继承。 三、 公共方法 public int getKeyProgressIncrement () 返回方向键改变后的进度值 默认情况下此值是根据最大值而得出的。 返回值 当用户按下方向键后减少或增加之后的进度值。这个进度值是正数。 public int getThumbOffset () 参见 setThumbOffset(int) public boolean onKeyDown (int keyCode, KeyEvent event) 默认实现KeyEvent.Callback.onKeyMultiple():如果视图已启用并且可点击,当KEYCODE_DPAD_CENTER或者KEYCODE_ENTER被释放时,执行按下(Down)此视图的操作。 参数 keyCode KeyEvent中用于表示按键被按下的识别码 event按键操作中定义的KeyEvent对象 返回值 假如你已经处理了当前事件,返回true。假如你想继续让下一个事件接收者(receiver)处理,则返回false; public boolean onTouchEvent (MotionEvent event) 实现这个方法来处理触摸屏幕引发的事件。 参数 event动作事件 返回值 如果事件已经处理返回True,否则返回false。 public void setKeyProgressIncrement (int increment) 设置使用方向键更改进度时每次的增加值(注:设置此值后,使用按键修改进度值时,每次增加或减少increment大小的幅度) 参数 increment The amount to increment or decrement when the user presses the arrow keys. increment当用户按下指示键时增加或减少的值 public synchronized void setMax (int max) 设置进度条的范围,从0到max 参数 max进度条的最大值 public void setThumb (Drawable thumb) 设置可绘制对象thumb为SeekBar中显示的进度表的结束位置的图案(注:例如下图) 如果thumb是一个有效的可绘制对象(例如不是null值),那么需要设置thumb的偏移量为他的一半宽度(参见setThumbOffset(int)) 参数 thumb可绘制对象 public void setThumbOffset (int thumbOffset) 设置thumb的偏移量允许thumb扩展超出轨道的范围 参数 thumbOffset以像素为单位的偏移量 (注:例如下图,两图同样取SeekBar的最大值) 默认Offset为thumb的一半时: setThumbOffset(0)时: 四、 受保护方法 protected boolean verifyDrawable (Drawable who) 如果你的视图子类显示他自己的可视化对象,他将要重写此方法并且为了显示可绘制返回true。此操作允许进行绘制时有动画效果。 确认当重写从方法时,需调用父类相应方法。(注:即记得调用super.verifyDrawable(who)) 参数 who需判断的可绘制对象(Drawable)。如果是你要显示的对象,返回True,否则返回调用父类的结果。 返回值 如果可绘制对象(Drawable)已经在视图中显示,返回True否则返回false。并且此处不允许使用动画。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582681,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android API 中文(13) —— ToggleButton

正文 一、结构 public classToggleButton extendsCompoundButton java.lang.Object android.view.View android.widget.TextView android.widget.Button android.widget.CompoundButton android.widget.ToggleButton 二、 类概述 通过一个带有亮度指示同时默认文本为“ON”或“OFF”的按钮显示选中/未选中状态。 三、XML属性 属性名称 描述 android:disabledAlpha 设置按钮在禁用时透明度。 android:textOff 未选中时按钮的文本 android:textOn 选中时按钮的文本 四、公共方法 public CharSequence getTextOff () 返回按钮未选中时的文本。 返回值 文本 public CharSequence getTextOn () 返回按钮选中时的文本。 返回值 文本 public void setBackgroundDrawable (Drawable d) 设置指定的可绘制(译者注:如图片)为背景,或删除背景。如果让背景有边距,这个视图的边距就是背景的边距。然而,当背景被删除时,这个视图的边距不能被触摸。如果需要设置边距,请使用方法setPadding(int, int, int, int)。 (译者注:如果设置删除背景整个就不显示了,此外设置背景后选中和被选中的图片也不显示了,如下图:,实现代码: ) 参数 d 设置可绘制(译者注:如图片)为背景,或设置为空删除背景。 public void setChecked (boolean checked) 改变按钮的选中状态。 参数 checked true让按钮选中,false让按钮不选中 public void setTextOff (CharSequence textOff) 设置按钮未选中时显示的文本。 参数 textOff 文本 public void setTextOn (CharSequence textOn) 设置按钮选中时显示的文本。 参数 textOn 文本 五、受保护方法 protected void drawableStateChanged () 在视图状态的变化影响到所显示可绘制的状态时调用这个方法。 确保在覆盖时中调用父类方法(译者注:super. drawableStateChanged ())。 protected void onFinishInflate () XML文件加载视图完成时调用。这个函数在加载的最后阶段被调用,所有的子视图已经被添加。 即使子类重写了onFinishInflate方法,也应该始终确保调用父类方法(译者注:super. onFinishInflate()),使系统能够调用。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582691,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (28) —— CheckedTextView

正文 一、结构 public classCheckedTextViewextendsTextViewimplementsCheckable java.lang.Object android.view.View android.widget.TextView android.widget.CheckedTextView 二、概述 类CheckedTextView继承TextView并实现Checkable接口。当ListView的setChoiceMode方法并设定为CHOICE_MODE_SINGLE或者CHOICE_MODE_MULTIPLE,而非CHOICE_MODE_NONE时,使用此类是很有用的。 三、 公共方法 public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event) 在子视图的构建时分派一个辅助事件。(译者注:通过源码可以看出,视图构建时设置其选中状态。) 参数 event事件 返回值 如果事件处理完成,则返回true public boolean isChecked () 是否选中。 public void setCheckMarkDrawable (Drawable d) 为一个给定的Drawable设定检查标记。当isChecked()为true时则绘制 参数 d用于检查标记的Drawable public void setCheckMarkDrawable (int resid) 为一个给定的Drawable设定检查标记,使用它的资源id来标识。当isChecked()为true时则绘制 参数 resid 用于检查标记的Drawable public void setChecked (boolean checked) 改变文本视图的选中状态 参数 checked选中文本返回true,未选中返回false public void setPadding (int left, int top, int right, int bottom) 设置页边距。视图可能会增加一些必要的空间用于显示滚动条,并依赖滚动条的类型和可见性。因此,设定的值用于回调getPaddingLeft(), getPaddingTop(), getPaddingRight()和getPaddingBottom()时则返回不同的值 参数 left左边距(使用“像素”单位) top上边距(使用“像素”单位) right右边距(使用“像素”单位) bottom 下边距(使用“像素”单位) public void toggle () 反转当前视图的选中状态 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582649,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (19) —— TwoLineListItem

正文 一、结构 public classTwoLineListItemextendsRelativeLayout java.lang.Object android.view.View android.view.ViewGroup android.widget.RelativeLayout android.widget.TwoLineListItem 二、 概述 这个布局是用在ListView中的,有两个子View。每一项有两个ID值为text1和text2的TextView的元素。也有一个ID是selecteIcon的元素,这个元素可以是任何View的子类(最典型的就是ImageView)。支持标准的布局资源文件(不包含所选择的icon),但是你可以为这个对象自己定义XML布局文件。 三、 XML属性 属性名称 描述 android:mode 布局模式:oneLine一行collapsing折叠twoLine两行 四、 公共方法 Public TextView getText1 () 返回ID为Text1的TextView对象 返回值 TextView Public TextView getText2 () 返回ID为Text1的TextView对象 返回值 TextView 五、 受保护方法 protected void onFinishInflate () 初始化XML布局。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582679,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(114)——TabWidget

正文 一、结构 public classTabWidget extendsLinearLayout implementsView.OnFocusChangeListener java.lang.Object android.view.View android.view.ViewGroup android.widget.LinearLayout android.widget.TabWidget 二、概述 显示选项卡标签的列表,用于代表父选项卡集合的每一页。当前widget的容器对象是TabHost。当用户选择一个选项卡时,此对象给父容器对象TabHost发送一个消息,告诉TabHost切换到对应的页面显示。此对象上的很多方法,你通常不会直接使用。容器TabHost被用来添加标签,添加并管理回调函数。你可能会调用此对象以迭代选项卡列表,或者调整选项卡列表的布局,但大多数方法应该是通过容器TabHost对象调用。 参见Tab Layout tutorial。 三、XML属性 属性名称 描述 android:divider 可绘制对象,被绘制在选项卡窗口间充当分割物。 android:tabStripEnabled 确定是否在选项卡绘制 android:tabStripLeft 被用来绘制选项卡下面的分割线左边部分的可视化对象。 android:tabStripRight 被用来绘制选项卡下面的分割线右边部分的可视化对象。 四、公共方法 public voidaddView(View child) 增加子视图。如果子视图没有设置布局参数,那么将为子视图设置此ViewGroup默认的布局参数。 参数 child新增的子视图 public voidchildDrawableStateChanged(View child) 如果调用addStatesFromChildren函数返回true,刷新此组的可视化对象的状态(包括它的子元素的状态)。 参数 child可视化对象状态被改变的子元素。 public voiddispatchDraw(Canvas canvas) 绘制时调用此方法来绘制子视图。派生类在被绘制之前,为获取控制可能会重写此方法(但必须在它自己的视图已经被绘制之后)。 参数 canvas绘制视图的画布(canvas) public voidfocusCurrentTab(int index) 设置当前选项卡并且让其获得焦点。此方法确保获取焦点的选项卡窗口匹配选中的窗口,一般情况下类似setCurrentTab(int)。通常当我们通过操作UI实现时,这些都不是问题,因为UI负责调用TabWidget.onFocusChanged(),但如果我们通过程序控制选中选项卡窗口,那么我们就必须确认保持焦点。(译者注:setCurrentTab(int)执行后,选中指定索引的选项卡窗口,但不获取焦点。focusCurrentTab(int)执行后,不仅通过调用setCurrentTab(int)选中指定索引的选项卡窗口还获取焦点。) 参数 index你想要设置焦点(橘色高亮)并且选中(选项卡被至于部件widget的前端)的选项卡。 参见 setCurrentTab(int) public ViewgetChildTabViewAt(int index) 返回位于指定索引位置的选项卡标识符的视图 参数 index选项卡指示符视图返回的从零开始的索引 返回值 在提供的索引位置上的选项卡指示符视图 public intgetTabCount() 返回选项卡的数量 返回值 选项卡指示符视图的数量 public booleanisStripEnabled() 指明选项卡指示符的底部分隔线是否绘制 public voidonFocusChange(View v, boolean hasFocus) 当视图的焦点状态被改变时调用。 参数 v状态变化的视图 hasFocus 视图的新焦点状态。 public voidsendAccessibilityEventUnchecked(AccessibilityEvent event) 处理用于发送AccessibilityEvent的请求。如果再发送之前调度事件,本方法不保证可访问性检查。可以通过调用者调用isEnabled()检查。 参数 event事件 public void setCurrentTab (int index) 设置当前选项卡。此方法被用来将选项卡置于widget的前部,并且通知其它的UI元素,一个不同的选项卡被调整到了前台。注意,这不同于传统的“焦点”,是从视图逻辑的焦点。 例如,如果我们在选项卡式视图中有一个列表,一个用户可能会上下移动列表,通过列表选项移动UI焦点(橘色高亮)。光标的移动并不影响选项卡的选中状态,因为滚动是在同一个选项卡上的。选中的选项卡仅仅当我们在选项卡上切换时(在此例中,从列表视图移到下一选项卡视图)更改。如果想要一次性的设置焦点并选中选项卡,请使用setCurrentTab(int)。 正常情况下,视图逻辑关注调整焦点,除非你规避了UI,你可能仅仅将你的兴趣集中在这里。 参数 index你想要指做选中选项卡的选项卡索引(选项卡被显示到widget的前部) 参见 focusCurrentTab(int) public voidsetDividerDrawable(Drawable drawable) 设置用于在选项窗口指示符间分隔的可绘制对象 参数 drawable用于分隔的可绘制对象 public voidsetDividerDrawable(int resId) 设置用于在两个选项卡标识符之间进行分隔的可绘制对象 参数 resId 被用来分隔的可绘制对象的资源标识 public voidsetEnabled(boolean enabled) 设置当前视图的启用状态。子类的不同而其对应的启用状态的解释也不相同。 参数 enabled是否启动 public voidsetLeftStripDrawable(int resId) 设置被用来当作选项卡指示符下面的分割线,左边部分的可绘制对象。 参数 resId the被用来当作左边分隔线的可绘制对象的资源标识符 public voidsetLeftStripDrawable(Drawable drawable) 设置被用来当作选项卡指示符下面的分割线,左边部分的可绘制对象。 参数 drawable左边分隔线的可绘制对象 public voidsetRightStripDrawable(int resId) 设置被用来当作选项卡指示符下面的分割线,右边部分的可绘制对象。 参数 resId 被用来当作右边分隔线的可绘制对象的资源标识符 public voidsetRightStripDrawable(Drawable drawable) 设置被用来当作选项卡指示符下面的分割线,右边部分的可绘制对象。 参数 drawable右边分隔线的可绘制对象 public voidsetStripEnabled(boolean stripEnabled) 控制选项卡指示符底部的分隔线是否绘制。默认是绘制。如果用户为选项卡指示符指定一个定制的视图,那么TabHost类调用此方法以禁用绘制底部分割线。 参数 stripEnabled如果需要绘制底部分割线为true 五、受保护方法 protected int getChildDrawingOrder (int childCount, int i) 返回要绘制的子元素在当前迭代中的索引。如果你需要修改子元素的绘制顺序,可以覆写此方法。默认情况下返回参数i值。 注意:为使此方法被调用,你必须先通过调用setChildrenDrawingOrderEnabled(boolean)启用子元素排序 参数 i 当前的迭代值 返回值 将要绘制的子元素在当前迭代的索引 protected void onSizeChanged (int w, int h, int oldw, int oldh) 布局过程中,当此视图的大小发生改变时被调用的。如果你只是添加到视图的层次结构,你调用时可以使用0当作之前的值(old value)。 参数 w 此视图的当前宽度 h 此视图的当前高度 oldw Old此视图之前的宽度 oldh此视图之前的高度 六、补充 术语对照 indicator指示符 drawable可绘制对象 iteration迭代 strips分割线 文章精选 Android选项卡(TabWidget)例子 {Android学习指南}TabWidget Android将TAB选项卡放在屏幕底部 示例代码 Java: public class TabDemo1 extends Activity implements OnClickListener{ TabHostmTabHost = null ; TabWidgetmTabWidget = null ; ButtonbtnVisiable,btnStrip; @Override protected void onCreate(BundlesavedInstanceState){ // TODOAuto-generatedmethodstub super .onCreate(savedInstanceState); setContentView(R.layout.tabdemo1); mTabHost = (TabHost)findViewById(android.R.id.tabhost); mTabHost.setup(); mTabWidget = mTabHost.getTabWidget(); mTabHost.addTab(mTabHost.newTabSpec( " tab1 " ).setContent( R.id.LinearLayout001).setIndicator( " Tab1 " )); mTabHost.addTab(mTabHost.newTabSpec( " tab2 " ).setContent( R.id.LinearLayout002).setIndicator( " Tab2 " )); mTabHost.addTab(mTabHost.newTabSpec( " tab3 " ).setContent( R.id.LinearLayout003).setIndicator( " Tab3 " )); // mTabHost.setCurrentTab(1); btnVisiable = (Button)findViewById(R.id.btnVisiable); btnStrip = (Button)findViewById(R.id.btnStrip); btnVisiable.setOnClickListener( this ); btnStrip.setOnClickListener( this ); setTitle( " 共有 " + mTabWidget.getTabCount() + " 个tab " ); } @Override public void onClick(Viewv){ // TODOAuto-generatedmethodstub switch (v.getId()){ case R.id.btnVisiable: if (mTabWidget.getVisibility() != android.view.View.VISIBLE) mTabWidget.setVisibility(android.view.View.VISIBLE); else mTabWidget.setVisibility(android.view.View.INVISIBLE); break ; case R.id.btnStrip: mTabWidget.setStripEnabled( ! mTabWidget.isStripEnabled()); mTabWidget.setRightStripDrawable(android.R.color.transparent); break ; default : break ; } } } XML: <? xmlversion="1.0"encoding="utf-8" ?> < TabHost xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="fill_parent" android:layout_height ="fill_parent" android:id ="@android:id/tabhost" > < LinearLayout android:layout_width ="fill_parent" android:orientation ="vertical" android:layout_height ="fill_parent" > < TabWidget android:id ="@android:id/tabs" android:layout_width ="fill_parent" android:layout_height ="wrap_content" ></ TabWidget > < FrameLayout android:id ="@android:id/tabcontent" android:layout_height ="wrap_content" android:layout_width ="fill_parent" > < LinearLayout android:id ="@+id/LinearLayout001" android:orientation ="vertical" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < Button android:id ="@+id/btnVisiable" android:text ="显示状态切换" android:layout_width ="fill_parent" android:layout_height ="wrap_content" ></ Button > < Button android:id ="@+id/btnStrip" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="分隔线状态切换" ></ Button > < TextView android:id ="@+id/TextView1" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="小龙是好人!!!" ></ TextView > </ LinearLayout > < LinearLayout android:id ="@+id/LinearLayout002" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < TextView android:id ="@+id/TextView2" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="小龙是坏蛋!" ></ TextView > </ LinearLayout > < LinearLayout android:id ="@+id/LinearLayout003" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < TextView android:id ="@+id/TextView3" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="小龙还是坏蛋!" ></ TextView > </ LinearLayout > </ FrameLayout > </ LinearLayout > </ TabHost > 结束 每次合集发布就像受检部队在接受检阅,紧张而又荣耀。为了每次的检阅,大家尽心尽力的筹备,做同一件事情,鼓励自己坚持,鼓励“战友”坚持。致力于可持续发展开源事业的建设。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582358,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android中文API(117)——WrapperListAdapter

正文 一、结构 public interfaceWrapperListAdapter implementsListAdapter android.widget. WrapperListAdapter 间接子类 HeaderViewListAdapter 二、概述 封装了另一个列表适配器的列表适配器。调用getWrappedAdapter()可以取得封装在其中的适配器。 参见 ListView 三、公共方法 public abstract ListAdaptergetWrappedAdapter() 返回封装在列表适配器中的适配器。 返回值 封装在该适配器中的ListAdapter。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582351,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android 中文 API (102)—— CursorAdapter

正文 一、结构 public abstract classCusrorAdapter extendsBaseAdpaterimplementsFilterable java.lang.Object android.widget.BaseAdapter android.widget.CursorAdapter 直接子类 ResourceCursorAdapter 间接子类 SimpleCursorAdapter 二、概述 通过该类可以用Cursor的方式访问数据库,并将查询出来的数据展示到列表视图(ListView)部件上。其中游标携带的结果集中必须有列名为“_id”的列,否则这个类无法工作。 三、构造函数 publicCusorAdapter(Context context,Cursor c) 构造函数。每当数据库的数据发生改变时,适配器将调用requery()重新查询以显示最新的数据。 参数 context 应用程序上下文。 c用来获取数据的游标(Coursor) publicCusorAdapter(Context context,Cursor c, boolean autoRequery) 构造函数。每当数据库的数据发生改变时,适配器将调用requery()重新查询以显示最新的数据。 参数 context 应用程序上下文。 c用来获取数据的Coursor autoRequry 设置为true时,每当数据库的数据发生改变时,适配器将调用requery()重新查询以显示最新的数据。 四、公共方法 public abstract voidbindView(View view, Context context, Cursor cursor) 重用一个已有的view,使其显示当前cursor所指向的数据。 参数 view已存在的视图,返回之前newView方法创建的视图。 context应用程序上下文 cursor 用于获取数据的Coursor。Coursor已经移到正确的位置。 public voidchangeCursor(Cursor cursor) 更改底层的游标为新传入的游标。如果游标已经存在则先关闭这个已存在的游标。 参数 cursor 新Cursor。 public CharSequenceconvertToString(Cursor cursor) 将cursor转换成CharSequence。子类应该重写这个方法并转换它们的结果。这个方法的默认实现是:当cursor为空时返回一个空串,否则直接返回调用cursor的toString()方法。 参数 cursor 将cursor转换成CharSequence对象。 返回值 返回表示CharSequence的值。 public intgetCount() (译者注:获取适配器中数据的总行数。) 参见 getCount() public CursorgetCursor() 返回当前适配器绑定的Cursor对象。 返回值 Cursor对象。 public ViewgetDropDownView(int position, View convertView, ViewGroup parent) 获取下拉列表选项指定位置的视图对象 参数 position 视图(View)对象的行索引。 convertView重用已有的视图(View)对象。备注:在使用前你应该检查一下这个视图对象是否非空并且这个对象的类型是否合适。由此引伸出,如果该对象不能被转换并显示正确的数据,这个方法内部就会重新创建一个合适的视图(View)对象。 parent 不管是转换后的还是重新创建的视图(View)对象,始终都会依附于parent对象上。 返回值 返回视图(View)对象,该对象显示数据集指定位置上的数据。 public FiltergetFilter() 返回一个可以通过一种过滤模式来约束数据的过滤器。 这个方法通常在Adapter类实现。 返回值 一个用于约束数据的过滤器 public FilterQueryProvidergetFilterQueryProvider() 返回一个提供过滤的查询过滤器。若过滤器为null,则不再过滤。 返回值 返回当前过滤器对象,如果不存在返回null。 参见 setFilterQueryProvider(android.widget.FilterQueryProvider) runQueryOnBackgroundThread(CharSequence) public ObjectgetItem(int position) (译者注:获取数据集中指定位置上的数据项目) 参见 getItem(int) public longgetItemId(int position) (译者注:获取数据集中的指定位置上的行id。) 参见 getItemId(int) public ViewgetView(int position, View convertView, ViewGroup parent) (译者注:获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从XML设计文件填充。当视图从XML设计文件填充时,父视图(如GridView,ListView等)将接受默认的设计参数,除非使用inflate(int, android.view.ViewGroup, boolean)去指定一个根视图和防止依附于根视图。) 参见 getView(int, View, ViewGroup) public booleanhasStableIds() 无论项ID代表的基础数据的是否变化都保持不变。 返回值 如果为TRUE,意味着相同的ID始终引用相同的对象。 public ViewnewDropDownView(Context context, Cursor cursor, ViewGroup parent) 生成一个新的下拉视图来保存cursor指向的数据 参数 context 应用程序全局信息接口(应用上下文) cursor获取数据的游标,它已经移动到正确的位置 parent与新视图相关联的上级视图 返回值 新创建的视图。 public abstract ViewnewView(Context context, Cursor cursor, ViewGroup parent) 新建一个视图来保存cursor指向的数据 参数 context 应用程序全局信息接口(应用上下文) cursor获取数据的游标,它已经移动到正确的位置 parent与新视图相关联的上级视图 返回值 新创建的视图。 public CursorrunQueryOnBackgroundThread(CharSequence constraint) 执行含指定约束的查询。此查询依赖于适配器的过滤器。查询是由FilterQueryProvider提供。如果没有指定FilterQueryProvider,当前cursor不过滤只返回。该方法会通过changeCursor(Cursor)方法返回一个Cursor对象,并且关闭掉先前的Cursor对象。这个方法始终在后台线程执行,而不是在应用程序的主线程(或是UI线程)中运行。规定:当参数constraint为null或为空时,该方法返回原始结果。 参数 constraint该查询必须被过滤的约束。 返回值 返回含有新的查询结果的Cursor。 参考 getFilter() getFilterQueryProvider() setFilterQueryProvider(android.widget.FilterQueryProvider) public voidsetFilterQueryProvider(FilterQueryProvider filterQueryProvider) 设置一个过滤器,用来过滤当前的Cursor对象。当这个适配器需要进行过滤操作时,runQuery(CharSequence)方法被调用。 参数 filterQueryProvider 过滤器对象,设置为null时,就相当于移除了该过滤器。 参考 getFilterQueryProvider() runQueryOnBackgroundThread(CharSequence) 五、受保护方法 protected voidinit(Context context, Cursor c, boolean autoRequery) (译者注:供构造函数使用初始化相关参数) protected voidonContentChanged() 当 cursor 对象上的 ContentObserver 接收到改变的通知时就会调用该方法,其默认实现提供了自动重新查询方式,但可以被子类重写。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582387,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册