首页 文章 精选 留言 我的

精选列表

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

Android 中文API (38) —— Spinner

正文 一、结构 public final classSpinnerextendsAbsSpinner java.lang.Object android.view.View android.view.ViewGroup android.widget.AdapterView<T extends android.widget.Adapter> android.widget.AbsSpinner android.widget.Spinner 二、概述 下拉列表(Spinner)是一个每次只能选择所有项中一项的部件。它的项来自于与之相关联的适配器中。 三、XML属性 属性名称 描述 android:prompt 该提示在下拉列表对话框显示时显示。(译者注:对话框的标题: 四、公共方法 public int getBaseline() 返回这个控件文本基线的偏移量。如果这个控件不支持基线对齐,那么方法返回-1. 返回值 返回控件基线左边边界位置,不支持时返回-1 (译者注:这个类不知道干什么用,只找到下面的代码: public class AndroidBamboo extends Activity { public void onCreate(BundlesavedInstanceState) { super .onCreate(savedInstanceState); Spinnerspinner = new Spinner( this ); spinner.setPrompt( " 500 " ); String[]items = { " bam " , " boo " , " lab " , " code " , " programming " , " framework " , " android " }; ArrayAdapterarray_adapter = new ArrayAdapter < String > ( this ,android.R.layout.simple_spinner_item,items); array_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(array_adapter); int baseline = spinner.getBaseline(); setContentView(spinner); } } public CharSequence getPrompt() 返回值 当对话框弹出的时候显示的提示(译者注:获得弹出视图上的标题字) public void onClick(DialogInterface dialog, int which) 当点击弹出框中的项时这个方法将被调用。 参数 dialog点击弹出的对话框 which点击按钮(如:Button)或者点击位置 public BooleanperformClick() 如果它被定义就调用此视图的OnClickListener(译者注:例如可以在加载时默认弹出下拉列表)。 返回值 为True一个指定的OnClickListener被调用,为false时不被调用。 public void setOnItemClickListener(AdapterView.OnItemClickListenerI) Spinner不支持item的点击事件,调用此方法将引发异常。 参数 l这个监听将被忽略 public voidsetPromptId(CharSequence prompt) 设置对话框弹出的时候显示的提示(译者注:设置弹出视图上的标题字) 参数 prompt设置的提示 public void setPromptId(int promptId) 设置对话框弹出的时候显示的提示(译者注:设置弹出视图上的标题字) 参数 prompted当对话框显示是显示这个资源id所代表的提示。 五、受保护方法 protected void onDetachedFromWindow () 当这个视图从屏幕上卸载时候被调用。在这一点上不再绘制视图。 protected void onLayout(boolean changed, int l, int t, int r, int b) 当View要为所有子对象分配大小和位置时,调用此方法。派生类与子项们应该重载这个方法和调用布局每一个子项。 参数 changed这是这个视图的一个新的大小或位置 l相对父空间的左位置 t相对父空间的顶端位置 r相对父空间的右端位置 b相对父空间的底部位置 参见 Creates and positions all views 六、补充 文章链接 Android学习指南——Spinner下拉列表 android自定义Spinner下拉菜单(下拉列表框)样式 示例代码 Java代码 public class SpinnerActivity extends Activity{ /** Calledwhentheactivityisfirstcreated. */ Stringmes = " Wolf " ; private static final String[]m_arr = { " 第一组 " , " 第二组 " , " 第三组 " }; @Override public void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.main); Spinners1 = (Spinner)findViewById(R.id.Spinner01); s1.setPrompt( " 请选择颜色 " ); // ArrayAdapteradapter=ArrayAdapter.createFromResource(this,R.array.spinnercolor,android.R.layout.simple_spinner_item); ArrayAdapter < String > adapter = new ArrayAdapter < String > ( this ,android.R.layout.simple_spinner_item,m_arr); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); s1.setSelection( 1 , true ); // s1.setPromptId(CONTEXT_INCLUDE_CODE); int baseline = s1.getBaseline(); s1.performClick(); s1.setOnItemSelectedListener( new Spinner.OnItemSelectedListener(){ public void onItemSelected(AdapterView <?> arg0,Viewarg1, int arg2, long arg3){ dispToast( " 选择的是 " + m_arr[arg2]); arg0.setVisibility(View.VISIBLE); } public void onNothingSelected(AdapterView <?> arg0){ // } }); Toast.makeText( this ,s1.getPrompt(),Toast.LENGTH_LONG).show(); } public void dispToast(Stringstr){ Toast.makeText( this ,str,Toast.LENGTH_SHORT).show(); } } XML资源文件 <? xmlversion="1.0"encoding="utf-8" ?> < resources > < string name ="hello" > HelloWorld,SpinnerActivity! </ string > < string name ="app_name" > Spinner测试 </ string > < string-array name ="spinnercolor" > < item > 红色 </ item > < item > 绿色 </ item > < item > 白色 </ item > < item > 橙色 </ item > </ string-array > < string name ="planet_prompt" > PleaseChooseaItem! </ string > </ resources > 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582627,如需转载请自行联系原作者

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

Android 中文 API (34) —— RadioGroup

正文 一、结构 public classRadioGroupextendsLinearLayout java.lang.Object android.view.View android.view.ViewGroup android.widget.LinearLayout android.widget.RadioGroup 二、概述 这个类用于创建一组按钮之间相互排斥的单选按钮组,在同一个单选按钮组中勾选一个按钮则会取消该组中其它已经勾选的按钮的选中状态。 初始状态下,所有的单选按钮都未勾选,虽然不能取消一个特定的单选按钮的勾选状态,但可以通过单选按钮组去消除它的勾选状态,根据XML布局文件中的单选按钮的唯一ID去标识指定的选择信息。 三、内部类 Class RadioGroup.LayoutParams 当WRAP_CONTENT(包裹内容)的子组件在XML文件中没有指定相应的宽度和高度的话,可以使用的布局参数默认设置的默认设置 Interface RadioGroup.OnCheckedChangeListener 当单选按钮组中的单选按钮的勾选状态发生改变时,所要调用的回调函数的接口类 四、公共方法 public void addView (View child, int index, ViewGroup.LayoutParams params) 使用指定的布局参数添加一个子视图 参数 child 所要添加的子视图 index将要添加子视图的位置 params所要添加的子视图的布局参数 public void check (int id) 如果传递-1作为指定的选择标识符来清除单选按钮组的勾选状态,相当于调用clearCheck()操作 参数 id 该组中所要勾选的单选按钮的唯一标识符(id) 参见 getCheckedRadioButtonId() clearCheck() public void clearCheck () 清除当前的选择状态,当选择状态被清除,则单选按钮组里面的所有单选按钮将取消勾选状态,getCheckedRadioButtonId()将返回null 参见 check(int) getCheckedRadioButtonId() public RadioGroup.LayoutParams generateLayoutParams (AttributeSet attrs) 基于提供的属性集合返回一个新的布局参数集合 参数 attrs用于生成布局参数的属性 返回值 返回一个ViewGroup.LayoutParams或其子类的实例 public int getCheckedRadioButtonId () 返回该单选按钮组中所选择的单选按钮的标识ID,如果没有勾选则返回-1 返回值 返回该单选按钮组中所选择的单选按钮的标识ID 参见 check(int) clearCheck() public void setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener listener) 注册一个当该单选按钮组中的单选按钮勾选状态发生改变时所要调用的回调函数 参数 listener当单选按钮勾选状态发生改变时所要调用的回调函数 public void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener listener) 注册一个当子内容添加到该视图或者从该视图中移除时所要调用的回调函数 参数 listener当层次结构发生改变时所要调用的回调函数 五、受保护方法 protected LinearLayout.LayoutParams generateDefaultLayoutParams () 当布局为垂直方向时,将返回一个宽度为“填充父元素”(MATCH_PARENT),高度为“包裹内容”的布局参数集合,如果为水平方向时,将返回宽度为“包裹内容”,高度为“填充父元素”的布局参数集合 (match_parent即为fill_parent,public static final int FILL_PARENT/MATCH_PARENT = -1 ) 返回值 返回一个默认的布局参数集合 protected void onFinishInflate () 当视图从XML中加载,且相应的子视图被添加之后,调用该方法, 即使子类重写了该方法,应该确保去调用父类的方法(通常放在方法在第一句),这样才能完成相应的调用参数 返回值 返回一个默认的布局参数集合 六、补充 文章链接 Android基础教程(七)之----单选项框RadioGroup的综合应用 Android UI设计RadioGroup单选按钮用法 Android小項目之--猜名字有獎!RadionButton和RadionGroup應用(附源碼) 示例代码 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582637,如需转载请自行联系原作者

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

Android 中文 API (20) —— DatePicker

正文 一、结构 public classDatePickerextendsFrameLayout java.lang.Object android.view.View android.view.ViewGroup android.widget.FrameLayout android.widget.DatePicker 二、概述 一个选择年月日的日历布局视图。对于对话框样式的日历视图,参见DatePickerDialog. 三、公共方法 public int getDayOfMonth () 获取选择的天数 public int getMonth () 获取选择的月份。(注意:返回数值为0..11,需要自己+1来显示) public int getYear () 获取选择的年份 public void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener) 初始化状态。(译者注:初始化年月日) 参数 year 初始年(译者注:注意使用new Date()初始化年时,需要+1900,如下:date.getYear() + 1900) monthOfYear初始月。 dayOfMonth 初始日。 onDateChangedListener 日期改变时通知用户的事件监听,可以为空(null)。 public void setEnabled (boolean enabled) 设置视图的启用状态。该启用状态随子类的不同而有不同的解释。 参数 enabled设置为true表示启动视图,反之禁用。 public void updateDate (int year, int monthOfYear, int dayOfMonth) 更新日期 四、受保护方法 protected void dispatchRestoreInstanceState (SparseArray<Parcelable> container) 重写使我们能够完全控制这小部件的保存或恢复。(译者注:此处直接调用了父类的ViewGroup. dispatchThawSelfOnly方法) 参数 container SparseArray持有保存以前的状态。The SparseArray which holds previously saved state. protected void onRestoreInstanceState (Parcelable state) 允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态。 参数 state The frozen state that had previously been returned by onSaveInstanceState(). 返回以前调用onSaveInstanceState()保存下来的状态。 protected Parcelable onSaveInstanceState () 允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这种状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏幕上的位置,因为这会在视图的层面上重新计算放置一个新的实例。 你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。 返回值 返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null。 五、补充 5.1 如果只想显示年月或者是月日,可以取巧用android:layout_marginLeft属性控制显示隐藏控件一部分。 5.2 如果用Date初始化的时候,需要注意年的问题: Datedate = new Date(); dpDate.init(date.getYear() + 1900 ,date.getMonth(), 1 , null ); 代码说明:dpDate为DatePicker控件。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582672,如需转载请自行联系原作者

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

Android 中文 API (22) —— MultiAutoCompleteTextView

正文 一、结构 public classMultiAutoCompleteTextViewextendsAutoCompleteTextView java.lang.Object android.view.View android.widget.TextView android.widget.EditText android.widget.AutoCompleteTextView android.widget.MultiAutoCompleteTextView 二、 类概述 一个继承自AutoCompleteTextView的可编辑的文本视图,能够对用户键入的文本进行有效地扩充提示,而不需要用户输入整个内容。(用户输入一部分内容,剩下的部分系统就会给予提示)。 用户必须提供一个MultiAutoCompleteTextView.Tokenizer以用来区分不同的子串。 下面的代码片段展示了如何创建一个文本视图,这个视图用来对用户输入的国家名称进行有效地补充提示。 三、公共方法 public boolean enoughToFilter () 此方法并不是检验什么时候文本的总长度超过了预定的值,而是在仅当从函数findTokenStart()到getSelectionEnd()函数得到的文本长度为0或者超过了预定值的时候才起作用。(译者注:当文本长度超过阈值时过滤) public void performValidation () 此子类方法并不是用来确定整个文本的有效性,而是用来确定文本中的单个符号的有效性。空标记将被移除。 public void setTokenizer (MultiAutoCompleteTextView.Tokenizer t) 设置用来决定用户正在输入文本的范围的分词组件。 四、 受保护方法 protected void performFiltering (CharSequence text, int keyCode) 此方法并不过滤整个编辑框的内容,只是过滤从函数findTokenStart()到函数getSelectionEnd()获得的长度为0或者超过了预定的值的文本内容。 参数 text指定过滤模式 keyCode插入到编辑框中的最后一个字符;当字符(文本)是通过软键盘输入的时候,小心此字符的值可能为NULL。 protected void performFiltering (CharSequence text, int start, int end, int keyCode) 启动对下拉式列表内容的过滤。过滤模式为编辑框中指定的范围。子类可覆盖此方法,以便于采用一个不同的模式。 protected void replaceText (CharSequence text) 通过替换从函数findTokenStart()到函数getSelectionEnd()得到的文本文本范围以及传递给函数terminateToken()的文版返回的结果来实现文本的输入。另外,文本的替换区域将会被标记为自动文本区,这样如果用户直接按DEL键,执行过程就会停止。子类可覆盖此方法来实现许多不同的文本插入工作。 参数 text 下拉列表里的选中项 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582668,如需转载请自行联系原作者

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

Android 中文 API (26) —— SeekBar

正文 一、结构 public classSeekBarextendsAbsSeekBar java.lang.Object android.view.View android.widget.ProgressBar android.widget.AbsSeekBar android.widget.SeekBar 二、概述 SeekBar是ProgressBar的扩展,在其基础上增加了一个可拖动的thumb(注:就是那个可拖动的图标)。用户可以触摸thumb并向左或向右拖动,再或者可以使用方向键都可以设置当前的进度等级。不建议把可以获取焦点的widget放在SeekBar的左边或右边。 SeekBar可以附加一个SeekBar.OnSeekBarChangeListener以获得用户操作的通知。 三、内部类 接口 SeekBar.OnSeekBarChangeListener 一个回调函数用来当进度等级发生改变时通知客户端 四、XML属性 属性名称 描述 android:thumb Seekbar上绘制的thumb(可拖动的那个图标) 五、公共方法 public void setOnSeekBarChangeListener (SeekBar.OnSeekBarChangeListener l) 设置一个监听器以接受seekbar进度改变时的通知。同时提供用户在SeekBar上开始和停止触摸手势时的通知。 参数 l SeekBar的通知监听对象 参见 SeekBar.OnSeekBarChangeListener 六、补充 6.1 文章链接 在android里做一个竖着的seekbar Android UI设计 SeekBar拖动条用法 6.2 示例代码 6.2.1 java文件 public class SeekBarDemo extends Activity{ @Override protected void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.seekbardemo); final SeekBarseekBar1 = (SeekBar) this .findViewById(R.id.seekBar1); seekBar1.setOnSeekBarChangeListener( new OnSeekBarChangeListener(){ @Override public void onStopTrackingTouch(SeekBarseekBar){ } @Override public void onStartTrackingTouch(SeekBarseekBar){ } @Override public void onProgressChanged(SeekBarseekBar, int progress, boolean fromUser){ Toast.makeText(SeekBarDemo. this , String.valueOf(seekBar1.getProgress()), Toast.LENGTH_SHORT).show(); } }); } } 6.2.1 xml文件 <? xmlversion="1.0"encoding="utf-8" ?> < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < SeekBar android:id ="@+id/seekBar1" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:max ="100" ></ SeekBar > </ LinearLayout > 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582654,如需转载请自行联系原作者

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

Android 中文 API (16) —— AnalogClock

正文 一、结构 public classAnalogClockextendsView java.lang.Object android.view.View android.widget.AnalogClock 二、类概述 这是一个带有时针和分针的模拟时钟控件。 三、受保护的方法 protected void onAttachedToWindow () 视图(AnalogClock)附在窗体时调用。在调用时,视图在窗体表面并开始绘制。注意保证这个方法在onDraw(Canvas)以前被调用,但是它可以在首次onDraw以前任何时间调用——包括onMeasure(int, int)之前或之后。 protected void onDetachedFromWindow () 视图(DigitalClock)从窗体上分离(移除)时调用,同时窗体表面不再绘制视图。 protected void onDraw (Canvas canvas) 实现你自己的绘制。 参数 canvas 在画布上绘制背景 protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) 测量这个视图以确定其内容的高度和宽度。通过measure(int, int)来调用这个方法,并且应该由子类重写以提高内容测量的效率和精确度。 约定:当该方法被重写时,你必须调用setMeasuredDimension(int, int)来存储已测量视图的高度和宽度。否则将通过measure(int, int)抛出一个IllegalStateException异常。调用父类的onMeasure(int, int)方法是一个有效的办法。 父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。为了更好测量内容子类应该重写onMeasure(int, int)。 如果这个方法被重写,子类有责任确保测量它的高度和宽度至少是视图的最小宽度和高度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())。 参数 widthMeasureSpec由于父类有横向空间要求,参见View.MeasureSpec。 heightMeasureSpec 由于父类有纵向空间要求,参见View.MeasureSpec。 protected void onSizeChanged (int w, int h, int oldw, int oldh) 布局期间当视图的大小发生改变时调用。如果只是添加到视图,调用时显示的是旧值0。(译者注:也就是添加到视图时,oldw和oldh返回的是0) 参数 w 视图当前宽度 h 视图当前高度 oldw 视图以前的宽度 oldh 视图以前的高度 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582686,如需转载请自行联系原作者

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

Android中文API(97)—— ContextMenu

正文 一、结构 public interfaceContextMenu implementsMenu android.view.ContextMenu 二、概述 扩展自Menu的上下文菜单提供了修改上下文菜单头(header)的功能。(译者注:当一个视图注册了上下文菜单时,执行一个在该对象上长按(2秒)的动作,将出现一个具有相关功能的浮动菜单。) 上下文菜单不支持菜单项的快捷方式和图标。 当执行长按上下文菜单时,大多数情况会调用registerForContextMenu(View)函数和重写执行onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)函数。(译者注:因为要创建一个上下文菜单,你必须重写这个活动的上下文回调函数onCreateContextMenu()并且通过registerForContextMenu(View)为其注册上下文菜单。) 三、内部类 interface ContextMenu.ContextMenuInfo 获得更多关于创建上下文菜单的信息。(译者注:例如:AdapterViews使用这个类可以精确选择adapter的位置来启动上下文菜单。) 四、公共方法 public abstract voidclearHeader() 清除上下文菜单头的信息。(译者注:包括图片和文字信息 Menu.clearHeader();后 ) public abstract ContextMenusetHeaderIcon(Drawable icon) 为上下文菜单头设置图标 参数 icon你要使用的Drawable 返回值 调用你设置修改的上下文菜单 public abstract ContextMenusetHeaderIcon(int iconRes) 设置上下文菜单头图标为指定的资源id 参数 iconRes 你要使用的图标资源的目录 (译者注:把图标放入res/drawable/目录下,R文件会自动生成对应项。设置方法如menu.setHeaderIcon(R.drawable.webtext) 这个上下文菜单头是没有设置图标的 这个上下文菜单头是设置了图标的 ) 返回值 调用你设置修改过的上下文菜单 public abstract ContextMenusetHeaderTitle(int titleRes) 通过资源标识符为上下文菜单头的标题栏设置文字。(译者注:需要在res/string中先设置一段你需要的文字,如:<stringname="titletest">这是一段测试文字</string> 然后通过R文件索引到这段文字,menu.setHeaderTitle(R.string.titletest)) 参数 titleRes 所需文字资源的索引 返回值 调用你设置修改过的上下文菜单 public abstract ContextMenusetHeaderTitle(CharSequence title) 设置上下文菜单的标题,显示在标题栏 参数 title标题要显示的文字 返回值 调用你设置修改过的上下文菜单 public abstract ContextMenusetHeaderView(View view) 设置View到上下文菜单头上。将替代上下文菜单头的图标和标题(或者替代你之前设置的headerView) 参数 view上下文菜单头要使用的View 返回值 调用你设置修改过的上下文菜单内容 五、补充 文章精选: Android的上下文菜单:Context Menu android的ContextMenu android上下文菜单Context Menu 代码示例: Test_Contextmenu.java public class Test_Contextmenu extends Activity{ /** Calledwhentheactivityisfirstcreated. */ @Override public void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.main); TextViewtxt1 = (TextView) this .findViewById(R.id.txt1); this .registerForContextMenu(txt1); TextViewtxt2 = (TextView) this .findViewById(R.id.txt2); this .registerForContextMenu(txt2); } // 重写 onCreateContextMenu 用以创建上下文菜单 @Override public void onCreateContextMenu(ContextMenumenu,Viewv, ContextMenuInfomenuInfo){ super .onCreateContextMenu(menu,v,menuInfo); // 创建R.id.txt1的上下文菜单 if (v == (TextView) this .findViewById(R.id.txt1)){ menu.setHeaderIcon(R.drawable.icon); menu.setHeaderTitle(R.string.titletest); // menu.clearHeader(); // 第一个参数:组ID // 第二个参数:菜单项ID // 第三个参数:顺序号 // 第四个参数:菜单项上显示的内容 menu.add( 1 , 0 , 0 , " 菜单1 " ); menu.add( 1 , 1 , 1 , " 菜单2 " ).setCheckable( true ); // 增加一个√选项 } // 创建R.id.txt2的上下文菜单(多级) else if (v == (TextView) this .findViewById(R.id.txt2)){ // ContextMenu.addSubMenu("菜单名称") - 用来添加子菜单。子菜单其实就是一个特殊的菜单 SubMenusub1 = menu.addSubMenu( " 父菜单1 " ); sub1.setHeaderIcon(R.drawable.folder); sub1.add( 0 , 0 , 0 , " 菜单1 " ); sub1.add( 0 , 1 , 1 , " 菜单2 " ); sub1.setGroupCheckable( 1 , true , true ); SubMenusub2 = menu.addSubMenu( " 父菜单2 " ); sub2.setIcon(R.drawable.text); sub2.add( 1 , 0 , 0 , " 菜单3 " ); sub2.add( 1 , 1 , 1 , " 菜单4 " ); sub2.setGroupCheckable( 1 , true , true ); } } } main.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" > < TextView android:id ="@+id/txt1" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="请长按触发(txt1)" /> < TextView android:id ="@+id/txt2" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="请长按触发(txt2)" /> </ LinearLayout > strings.xml <? xmlversion="1.0"encoding="utf-8" ?> < resources > < string name ="hello" > HelloWorld,Test_Contextmenu! </ string > < string name ="app_name" > Test_Contextmenu </ string > < string name ="titletest" > 这是一段测试文字 </ string > </resources> 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582398,如需转载请自行联系原作者

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

Android 中文API (46) —— SimpleAdapter

正文 一、结构 public interfaceSpinnerAdapterextendsAdapter java.lang.Object android.widget.BaseAdapter android.widget. SpinnerAdapter 二、概述 这是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在ArrayList中的每个条目对应List中的一行。Maps包含每行数据。你可以指定一个定义了被用于显示行的视图XML文件,通过关键字映射到指定的视图。绑定数据到视图分两个阶段,首先,如果一个SimpleAdapter.ViewBinder是有效的,setViewValue(android.view.View, Object, String)将被调用。如果返回值是真,绑定完成了。如果返回值为假,下面的视图将按以下顺序去处理: 一个实现了Checkable的视图(例如CheckBox),期望绑定值是一个布尔类型。 TextView期望绑定值是一个字符串类型,通过调用setViewText(TextView, String)绑定。 ImageView期望绑定值是一个资源id或者一个字符串,通过调用setViewImage(ImageView, int)或 setViewImage(ImageView, String)。 如果没有一个合适的绑定发生将会抛出IllegalStateException。 三、构造函数 publicSimpleAdapter(Contextcontext,List<?extendsMap<String,?>> data, int resource,String[]from, int[] to) 构造函数 参数 context关联SimpleAdapter运行着的视图的上下文。 data一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目 resource一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。 from一个将被添加到Map上关联每一个项目的列名称的列表 to应该在参数from显示列的视图。这些应该全是TextView。在列表中最初的N视图是从参数from中最初的N列获取的值。 四、公共方法 public intgetCount() 获取数据集中记录总行数 publicViewgetDropDownView(int position,ViewconvertView,ViewGroupparent) 获得一个在指定位置上显示下拉弹出数据的视图。 参数 position想得到项目视图的索引 convertView如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图 parent 视图最终将依附的父对象 返回值 一个对应指定位置的数据的视图。 publicFiltergetFilter() 返回一个可以通过一种过滤模式来约束数据的过滤器。 这个方法通常被Adapter类实现。 返回值 一个用于约束数据的过滤器 public abstractObjectgetItem(int position) 获取数据集中指定位置上的数据项目 参数 position在adapter中我们想得到项目的位置。 返回值 指定位置上的数据。 public abstract longgetItemId(int position) 获取数据集中指定位置上的行ID。 参数 position在adapter中我们想得到的行ID的项目的位置。 返回值 指定位置上的数据。 public abstractViewgetView(int position,ViewconvertView,ViewGroupparent) 获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从XML设计文件填充。当视图从XML设计文件填充时,父视图(如GridView,ListView等)将接受默认的设计参数,除非使用inflate(int, android.view.ViewGroup, boolean)去指定一个根视图和防止依附于根视图。 参数 position我们想要的在adapter中的数据项目的位置 convertView如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图 parent视图最终将依附的父对象。 返回值 一个在指定位置上相应的数据的视图。 publicSimpleAdapter.ViewBindergetViewBinder() 返回被用来绑定数据到视图的SimpleAdapter.ViewBinder。 返回值 一个ViewBinder,如果binder不存在则返回null 参见 setViewBinder(android.widget.SimpleAdapter.ViewBinder) public voidsetDropDownViewResource(int resource) 设置创建下拉视图的布局资源 参数 resource定义下拉视图的布局资源 参见 getDropDownView(int, android.view.View, android.view.ViewGroup) public voidsetViewBinder(SimpleAdapter.ViewBinderviewBinder) 设置binder用于绑定数据到视图 参数 viewBinder用于绑定数据到视图的binder可以设置为null,可用于删除存在的binder 参见 getViewBinder() public voidsetViewImage(ImageViewv, int value) 调用bindView去给ImageView设置图像,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个ImageView时才调用。如果提供的数据是一个整形时,setViewImage(ImageView, String)方法将被本方法替代 参数 v接收图像的ImageView value从数据集获取数据到值 参见 setViewImage(ImageView, String) public voidsetViewImage(ImageViewv,Stringvalue) 调用bindView去给ImageView设置图像,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个ImageView时才调用。默认的,这个值被作为一个图像资源来对待。如果这个值作为一个图像的Uri来使用。如果提供的数据不是一个整形时,setViewImage(ImageView, int)方法将被本方法替代 参数 v接收图像的ImageView value从数据集获取数据到值 参见 setViewImage(ImageView, int) public voidsetViewText(TextViewv,Stringtext) 调用bindView去给TextView设置文本,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个TextView时才调用 参数 v将接收文本的TextView text被设置到TextView的文本 五、补充 文章精选 简约而不简单——Android SimpleAdapter android listview组件之ArrayAdapter,SimpleAdapter Android用simpleAdapter来直接显示BMP图片(有ViewBinder用法) 示例代码 privateListViewlv; privateList<Map<String,String>>data; privateSimpleAdaptersAdapter; lv=(ListView)findViewById(R.id.listview); data=newArrayList<Map<String,Object>>(); for(inti=0;i<10;i++){ Map<String,Object>map=newHashMap<String,Object>(); map.put("title","APPLE"); map.put("content","caneat"); map.put("check",true); map.put("check1","true"); map.put("image",R.drawable.icon); data.add(map); } sAdapter=newSimpleAdapter(getApplicationContext(), data, R.layout.item, newString[]{"title","content","check","check1","image"}, newint[]{R.id.title,R.id.content,R.id.check,R.id.check1,R.id.image}); lv.setAdapter(sAdapter); 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582592,如需转载请自行联系原作者

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

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 (93) —— BaseExpandableListAdapter

正文 一、结构 public abstract classBaseExpandableListAdapter extendsObject implementsExpandableListAdapter,HeterogeneousExpandableList java.lang.Object android.widget.BaseExpandableListAdapter 直接子类 CursorTreeAdapter,SimpleExpandableListAdapter 间接子类 ResourceCursorTreeAdapter,SimpleCursorTreeAdapter 二、概述 BaseExpandableListAdapter是ExpandableListAdapter的抽象基类,从一些数据中提供数据和视图给可折叠列表视图。 所有继承本类的Adapters需要保证实现的getCombinedChildId(long, long)和getCombinedGroupId(long)方法能正确地从View组或View子元素的ID中生成唯一的ID号。 (译者注:组元素表示可折叠的列表项,子元素表示列表项展开后看到的多个子元素项。由于可折叠列表单纯寻找组元素和子元素的ID不是很方便,因此使用联合ID的方式来解决。于是有了getCombinedChildId()和getCombinedGroupId()方法。在andorid自带的ApiDomos的例子中有这个的代码:App/View/ExpandableList1)。 三、公共方法 public booleanareAllItemsEnabled() 是否启用所有元素。 public intgetChildType(int groupPosition, int childPosition) 获取由getChildView(int, int, boolean, View, ViewGroup)方法创建的指定子元素类型。 参数 groupPosition子元素所在的组位置 childPosition子元素所在的位置 返回值 0表示任意一个子元素类型,因此此时应当只声明一种子元素类型。 publicintgetChildTypeCount() 获取由getChildView(int, int, boolean, View, ViewGroup)创建的所有子元素类型个数。每种类型表示一个能被getChildView(int, int, boolean, View, ViewGroup)转换的(任意组中的)View集合。如果适配器总是从所有的子元素中返回同一种类型,本方法将返回1。 本方法将仅仅在AdapterView设置适配器时被调用。 返回值 BaseExpandableListAdapter默认返回1。 public longgetCombinedChildId(long groupId, long childId) 若你预见以下默认实现的IDs可能出现冲突,请重写本方法。 实现返回一个long型: *第0位:不管ID指向的是一个子元素(未设置)还是一个组(已设置),对于本方法bit值为1. *第1-31位:小于31位的组ID。 *第32-63位:小于32位的子元素ID。 从列表所有项(组或子项)中获得一个唯一的子ID号。可折叠列表要求每个元素(组或子项)在所有的子元素和组中有一个唯一的ID。本方法负责根据所给的子ID号和组ID号返回唯一的ID。此外,若hasStableIds()是true,那么必须要返回稳定的ID。 参数 groupID包含该子元素的组ID childID子元素的ID号 返回 列表所有项(组或子项)中唯一的(和可能稳定)的子元素ID号。 public longgetCombinedGroupId(long groupId) 若你预见以下默认实现产生IDs冲突的话,请重写本方法。 实现返回一个long型: *第0位:不管ID指向的是一个子元素(未设置)还是一个组(已设置),对于本方法bit值为1. *第1-31位:小于31位的组ID。 *第32-63位:小于32位的子元素ID。 从列表所有项(组或子项)中获得一个唯一的子ID号。可折叠列表要求每个元素(组或子项)在所有的子元素和组中有一个唯一的ID。本方法负责根据所给的子ID号和组ID号返回唯一的ID。此外,若hasStableIds()是true,那么必须要返回稳定的ID。 参数 groupID包含该子元素的组ID 返回 列表所有项(组或子项)中唯一的(和可能稳定)的子元素ID号。 public intgetGroupType(int groupPosition) 获得由getGroupView(int, boolean, View, ViewGroup)方法创建的组元素类型。为设置的组元素。 参数 groupPosition应返回类型所在组的位置 返回 0表示任意组位置,因此此时应当只申明了一种组类型。 public intgetGroupTypeCount() 返回由getGroupView(int, boolean, View, ViewGroup)方法创建的组视图类型个数。每个类型表示一个能被getGroupView(int, boolean, View, ViewGroup)转换的View集合。如果适配器总是返回同一种组类型,则此时本方法将返回1. 本方法将仅当适配器被AdapterView设置时调用。 返回 BaseExpandableListAdapter默认返回1. public booleanisEmpty() (译者注:如果适配器没有任何数据,返回真。参见Adapter) public voidnotifyDataSetChanged() (译者注:当后台数据集发生改变时,调用此方法响应数据集的更改。) 参见 notifyChanged() public voidnotifyDataSetInvalidated() (译者注:当后台数据集不被验证的时候,调用此方法。) 参见 notifyInvalidated() public voidonGroupCollapsed(int groupPosition) 当组折叠的时候被调用。 参数 groupPosition要折叠的组所在位置 public voidonGroupExpanded(int groupPosition) 当组展开的时候被调用。 参数 groupPosition要折叠的组所在位置 public voidregisterDataSetObserver(DataSetObserverobserver) (译者注:注册当用该适配器修改数据时调用的观察器。) public voidunregisterDataSetObserver(DataSetObserverobserver) (译者注:注销之前通过registerDataSetObserver(DataSetObserver)方法注册到该适配器的观察器。) 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582413,如需转载请自行联系原作者

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

Android 中文api (88)——SharedPreferences

正文 一、结构 public interfaceSharedPreferences android.content.SharedPreferences 二、概述 用于访问和修改getSharedPreferences(String, int)返回偏好设置数据(preference data)的一个接口。对于任何一组特殊的preferences,所有的客户端共享一个此类单独的实例。 修改Preferences必须通过一个SharedPreferences.Editor对象,以确保当他们提交存储数据的操作时,preference值保持一致的状态。 注意:当前此类不支持多线程访问。后续将添加。 (译者注:这里译为”偏好设定”,类似于ini文件,用于保存应用程序的属性设置) 参见 getSharedPreferences(String, int) 三、内部类 interface SharedPreferences.Editor 用于修改SharedPreferences对象设定值的接口。 interface SharedPreferences.OnSharedPreferenceChangeListener 接口定义一个用于在偏好设定(shared preference)改变时调用的回调函数。 四、公共方法 public abstract booleancontains(String key) 判断preferences是否包含一个preference。 参数 key想要判断的preference的名称 返回值 如果preferences中存在preference,则返回true,否则返回false。 public abstract SharedPreferences.Editoredit() 针对preferences创建一个新的Editor对象,通过它你可以修改preferences里的数据,并且原子化的将这些数据提交回SharedPreferences对象。(译者注:原子化——作为一个整体提交,原子性) 注意:如果你想要在SharedPreferences中实时显示,刚通过Editor对象进行的修改,那么你必须调用commit()方法。 返回值 返回一个SharedPreferences.Editor的新实例,允许你修改SharedPreferences对象里的值。 public abstract Map<String, ?>getAll() 取得preferences里面的所有值 返回值 返回一个map,其中包含一列preferences中的键值对 异常 空指针异常(NullPointerException) public abstract boolean getBoolean (String key, boolean defValue) 从preferences中获取一个boolean类型的值。 参数 key 获取的preference的名称 defValue当此preference不存在时返回的默认值 返回值 如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个boolean类型,则抛出ClassCastException。 异常 ClassCastException public abstract float getFloat (String key, float defValue) 从preferences中获取一个float类型的值。 参数 key 获取的preference的名称 defValue当此preference不存在时返回的默认值 返回值 如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个float类型,则抛出ClassCastException。 异常 ClassCastException public abstract intgetInt(String key, int defValue) 从preferences中获取一个int类型的值。 参数 key 获取的preference的名称 defValue当此preference不存在时返回的默认值 返回值 如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个int类型,则抛出ClassCastException。 异常 ClassCastException public abstract longgetLong(String key, long defValue) 从preferences中获取一个long类型的值。 参数 key 获取的preference的名称 defValue当此preference不存在时返回的默认值 返回值 如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个long类型,则抛出ClassCastException。 异常 ClassCastException public abstract StringgetString(String key, String defValue) 从preferences中获取一个String类型的值。 参数 key 获取的preference的名称 defValue当此preference不存在时返回的默认值 返回值 如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个String类型,则抛出ClassCastException。 异常 ClassCastException public abstract voidregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) 注册一个回调函数,当一个preference发生变化时调用。 参数 listener将会被调用的回调函数 参见 unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener) public abstract voidunregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) 注销一个之前(注册)的回调函数 参数 listener要被注销的回调函数 参见 registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener) 五、补充 文章精选 SharedPreferences [Android开发者指南]第十八讲:Android SharedPreferences和File SharedPreferences用法 Android程式設計(十五)使用SharedPreferences 示例代码 译注:Shared Preferences保存位置:/data/data/app_name/shared_prefs/*.xml private boolean flag = false ; // 取得活动的Preferences对象 SharedPreferencessettings = getPreferences(Activity.MODE_PRIVATE); // 取得值 flag = settings.getBoolean(“flag”, false ); // 取得活动的Preferences对象 SharedPreferencessettings = getPreferences( 0 ); // 取得编辑对象 SharedPreferences.Editoreditor = settings.edit(); // 添加值 editor.putBoolean(“ true ”,flag); // 提交保存 editor.commit(); 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582420,如需转载请自行联系原作者

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

android中文api(89)——ViewManager

正文 一、结构 public interfaceViewManager android.view.ViewManager 间接子类 AbsListView, AbsSpinner, AbsoluteLayout, AdapterView<T extends Adapter>, AppWidgetHostView, DatePicker, DialerFilter, ExpandableListView, FrameLayout, Gallery, GestureOverlayView, GridView, HorizontalScrollView, ImageSwitcher, LinearLayout, ListView, MediaController, RadioGroup, RelativeLayout, ScrollView, SlidingDrawer, Spinner, TabHost, TabWidget, TableLayout, TableRow, TextSwitcher, TimePicker, TwoLineListItem, ViewAnimator, ViewFlipper, ViewGroup, ViewSwitcher, WebView, WindowManager, ZoomControls 二、概述 此接口使你可以向一个Activity中添加和移除子视图。调用Context.getSystemService(),你可以得到该类的一个实例。(译者注:ViewManager是个接口,没有任何实现,抽象类ViewGroup对该接口的三个方法进行了具体实现。) 三、公共方法 public abstract voidaddView(View view, ViewGroup.LayoutParams params) (译者注:增添一个视图对象,并指定其布局参数 参数 view 制定添加的子视图 params子视图的布局参数) public abstract voidremoveView(View view) (译者注:移除指定的视图 参数 view指定移除的子视图) public abstract voidUpdateViewLayout(View view, ViewGroup.LayoutParams params) (译者注:更新一个子视图 参数 view 指定更新的子视图 params 更新时所用的布局参数) 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582418,如需转载请自行联系原作者

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

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 (61) —— ViewSwitcher

正文 一、结构 public classViewSwitcher extendsViewAnimator java.lang.Object android.view.View android.view.ViewGroup android.widget.FrameLayout android.widget.ViewAnimator android.widget.ViewSwitcher 已知直接子类 ImageSwitcher,TextSwitcher 二、概述 在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。 (译者注:与ViewFlipper类相似,但该类不常用,常用其两个子类ImageSwitcher:转换图片时增加动画效果;TextSwitcher:转换文字时增加动画效果;其实例见apidemos中ImageSwitcher实例和TextSwitcher实例) 三、内部类 interface ViewSwitcher.ViewFactory 在一个ViewSwitcher里创建视图 四、构造函数 publicViewSwitcher(Context context) 构造一个新的空的视图转换器(ViewSwitcher)。 参数 context 应用环境(译者注:应用程序上下文) publicViewSwitcher(Context context, AttributeSet attrs) 构造一个指定上下文、属性集合的空的视图转换器(ViewSwitcher)。 参数 context 应用环境(译者注:应用程序上下文) attrs属性集合 五、公共方法 public voidaddView(View child, int index, ViewGroup.LayoutParams params) 添加一个指定布局参数的子视图 参数 child添加的子视图 index添加的子视图的索引 params子视图的布局参数 异常 IllegalStateException如果切换器中已经包含了两个视图时。 public ViewgetNextView() 返回下一个要显示的视图 返回 视图切换之后将要显示出的下一个视图 public voidreset() 重置视图转换器(ViewSwitcher)来隐藏所有存在的视图,并使转换器达到一次动画都还没有播放的状态。 public voidsetFactory(ViewSwitcher.ViewFactory factory) 设置用来生成将在视图转换器中切换的两个视图的工厂。也可以调用两次addView(android.view.View, int, android.view.ViewGroup.LayoutParams)来替代使用工厂的方法。 参数 factory用来生成转换器内容的视图工厂 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582545,如需转载请自行联系原作者

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

Android 中文 API (40) —— RatingBar

正文 一、结构 public classRatingBarextendsAbsSeekBar java.lang.Object android.view.View android.widget.ProgressBar android.widget.AbsSeekBar android.widget.RatingBar 二、概述 RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。 当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。 只有当布局的宽被设置为wrapcontent时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。 次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。 参见Form Stuff tutorial. 三、嵌套类 接口:RatingBar.OnRatingBarChangeListener 一个回调函数,当星级进度改变时修改客户端的星级。 四、XML属性 属性名称 描述 android:isIndicator RatingBar是否是一个指示器(用户无法进行更改) android:numStars 显示的星型数量,必须是一个整形值,像“100”。 android:rating 默认的评分,必须是浮点类型,像“1.2”。 android:stepSize 评分的步长,必须是浮点类型,像“1.2”。 五、公共方法 public int getNumStars () 返回显示的星型数量 返回值 显示的星型数量 public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener () 返回值 监听器(可能为空)监听评分改变事件 public float getRating () 获取当前的评分(填充的星型的数量) 返回值 当前的评分 public float getStepSize () 获取评分条的步长 返回值 步长 public boolean isIndicator () 返回值 判断当前的评分条是否仅仅是一个指示器(注:即能否被修改) public void setIsIndicator (boolean isIndicator) 设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了) 参数 isIndicator Bool值,是否是一个指示器 public synchronized void setMax (int max) 设置评分等级的范围,从0到max 参数 max评分条最大范围。 public void setNumStars (int numStars) 设置显示的星型的数量。为了能够正常显示它们,建议将当前widget的布局宽度设置为 wrap content 参数 numStars星型的数量 public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener) 设置当评分等级发生改变时回调的监听器 参数 listener 监听器 public void setRating (float rating) 设置分数(星型的数量) 参数 rating设置的分数 public void setStepSize (float stepSize) 设置当前评分条的步长(step size) 参数 stepSize评分条的步进。例如:如果想要半个星星,它的值为0.5。 六、受保护方法 protected synchronized voidonMeasure(int widthMeasureSpec, int heightMeasureSpec) 权衡view和content来决定它的宽度和高度的整齐。它被measure(int, int)调用并且应该被子类所覆盖,以便提供准确高效的布局测量。 规定:当覆盖这个方法的时候,你必须调用setMeasuredDimension(int, int)以便存储精确的视图的宽和高。如果不这样做的话将触发llegalStateException异常,被函数measure(int, int)抛出。调用父类onMeasure(int, int)是合理的。 尺寸的基本类的实现默认是背景大小,除非通过MeasureSpec允许大的尺寸。子类应该覆盖onMeasure(int, int)以便提供更好的布局大小。 如果这个方法被覆盖,子类应该负责确保标准的宽和高至少是视图的最小宽度和高度的值(分别为getSuggestedMinimumHeight()和getSuggestedMinimumWidth()两方法)。 参数 widthMeasureSpec受主窗口支配的水平空间要求。这个需求通过View.MeasureSpec.进行编码。 heightMeasureSpec受主窗口支配的垂直空间要求。这个需求通过View.MeasureSpec.进行编码。 七、补充 文章链接 Android控件之RatingBar评分条 Android更换RatingBar图片 [Android学习指南]RatingBar评分条 示例代码(代码转载自Android手机开发者论坛) Java文件 public class AndroidRatingBar extends Activity{ /** Calledwhentheactivityisfirstcreated. */ @Override public void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.main); final RatingBarratingBar_Small = (RatingBar)findViewById(R.id.ratingbar_Small); final RatingBarratingBar_Indicator = (RatingBar)findViewById(R.id.ratingbar_Indicator); final RatingBarratingBar_default = (RatingBar)findViewById(R.id.ratingbar_default); ratingBar_default.setOnRatingBarChangeListener( new RatingBar.OnRatingBarChangeListener(){ public void onRatingChanged(RatingBarratingBar, float rating, boolean fromUser){ ratingBar_Small.setRating(rating); ratingBar_Indicator.setRating(rating); Toast.makeText(AndroidRatingBar. this , " rating: " + String.valueOf(rating), Toast.LENGTH_LONG).show(); }}); } } 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" > < TextView android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="@string/hello" /> < RatingBar android:layout_width ="wrap_content" android:layout_height ="wrap_content" style ="?android:attr/ratingBarStyleIndicator" android:id ="@+id/ratingbar_Indicator" /> < RatingBar android:layout_width ="wrap_content" android:layout_height ="wrap_content" style ="?android:attr/ratingBarStyleSmall" android:id ="@+id/ratingbar_Small" android:numStars ="20" /> < RatingBar android:layout_width ="wrap_content" android:layout_height ="wrap_content" style ="?android:attr/ratingBarStyle" android:id ="@+id/ratingbar_default" /> </ LinearLayout > 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582621,如需转载请自行联系原作者

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

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 (39) —— AbsSpinner

正文 一、结构 public abstract classAbsSpinnerextendsAdapterView<T extends Adapter> java.lang.Object android.view.View android.view.ViewGroup android.widget.AdapterView<T extends android.widget.Adapter> android.widget.AbsSpinner 二、概述 下拉列表的基类。Sdk可能不再使用到该类(译者注:我认为是过时了) 三、XML属性 属性名称 描述 android:entries 引用一个数据源填充Spinner这是一种比编程填充Spinner更简单的方式。 四、公共方法 public SpinnerAdapter getAdapter () 返回与当前部件相关联的适配器 返回值 该适配器用于提供视图内容 public int getCount () 返回值 与此相关的适配器AdapterView所拥有的项目数量。(这个数据项,可能比显示的视图数据量还大。) public View getSelectedView () 返回值 这个视图对应当前选择的项,或者如果不选择视图则为null public void onRestoreInstanceState (Parcelable state) 允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不能以一个空值状态被调用。 参数 state 返回以前调用onSaveInstanceState()保存下来的状态。 public Parcelable onSaveInstanceState () 允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这个状态只可包含那些暂时的或不能被重建的信息。例如,你无法将你目前的位置保存在屏幕上,因为当有一个新的对象出现在这个视图层次上就会自动重新计算。 以下有些实例:当光标停留在一个文本视区上(但是通常来说不能是实文档,因为那个是己储存在内容提供者或者其它长久储存器中),当前所选的项位于一个列表视图中 返回值 返回一个Parcelable对象包含了当前视图动态状态,或者返回null如果没有保存,默认返回值为null。 public int pointToPosition (int x, int y) 映射到列表中的一个坐标(译者注:根据这个坐标可以确定点击的是哪一个item,看这里) 参数 x局部坐标X(译者注:列表范围内的坐标X) y局部坐标Y(译者注:列表范围内的坐标Y) 返回值 返回这个位置包含的指定点(译者注:返回坐标(item)在列表中的顺序),如果这2个点不相交返回INVALID_POSITION public void requestLayout () 重写以防止布局视图时出现大量布局要求。(译者注:这个方法通常在视图认为它自己不再合适它当前的边界的情况下被调用) public void setAdapter (SpinnerAdapter adapter) 该适配器用于提供数据支持这个Spinner。他还提供了改变基于他们选择的相对位置的选定项 参数 adapter该SpinnerAdapter用于下拉列表 public void setSelection (int position, boolean animate) 直接跳到数据适配器中指定项 public void setSelection (int position) 设置当前选中项,为了支持可访问的子类重写此方法,必须首先调用父类的方法。 参数 position索引,被选中的数据项(从0开始) 五、受保护方法 protected ViewGroup.LayoutParams generateDefaultLayoutParams () 返回默认设置的布局参数。这些参数是在请求传递给addView(View)还没有布局的时候已经设置好了的。如果是返回null,则从addView抛出一个异常 返回值 参数的默认布局或null 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582625,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

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文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册