Android 中文API (38) —— Spinner

简介:

前言

  本章内容是 android.widget.Spinner,译为"下拉列表",版本为Android 2.2 r1,翻译来自"思考的狼",欢迎大家访问他的博客:http://blog.163.com/sikaodelang@126/ ,再次感谢"思考的狼" !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。 

 

声明

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

    博客园:http://www.cnblogs.com/

    Android中文翻译组:http://www.cnblogs.com/over140/  

 

正文

  一、结构

    public final class Spinner extends AbsSpinner

 

    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( Bundle savedInstanceState ) 
    {
     
super .onCreate ( savedInstanceState );
        Spinner spinner 
=   new  Spinner (  this  );
        spinner.setPrompt( 
" 500 "  );
        String [ ] items 
=  {  " bam " " boo " " lab " " code " " programming " " framework " " android "  };

        ArrayAdapter array_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 Boolean performClick()

如果它被定义就调用此视图的OnClickListener(译者注:例如可以在加载时默认弹出下拉列表)。

  返回值

True一个指定的OnClickListener被调用,为false时不被调用。

 

public void setOnItemClickListener(AdapterView.OnItemClickListener I)

     Spinner不支持item的点击事件,调用此方法将引发异常。

参数

  l        这个监听将被忽略

 

public void setPromptId(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 {
    
/**  Called when the activity is first created.  */
    String mes 
=   " Wolf " ;
    
private   static   final  String[] m_arr  =  { " 第一组 " , " 第二组 " , " 第三组 " };
    @Override
    
public   void  onCreate(Bundle savedInstanceState) {
        
super .onCreate(savedInstanceState);
        setContentView(R.layout.main); 
       Spinner s1 
=  (Spinner)findViewById(R.id.Spinner01); 
       s1.setPrompt(
" 请选择颜色 "  ); 
       
// ArrayAdapter adapter = 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, View arg1,  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(String str){
        Toast.makeText(
this , str, Toast.LENGTH_SHORT).show();
    }   
}
复制代码

      XML资源文件

复制代码
<? xml version="1.0" encoding="utf-8" ?>
< resources >
    
< string  name ="hello" > Hello World, 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" > Please Choose a Item! </ string >
</ resources >
复制代码

结束

  感谢"思考的狼"为文章提供完善的翻译及示例:)


转载:http://www.cnblogs.com/over140/archive/2010/11/17/1879794.html

目录
相关文章
|
9月前
|
Android开发
Android 11 修改libcore update-api 遇到的问题
Android 11 修改libcore update-api 遇到的问题
257 1
|
定位技术 API 开发工具
Android 按照步骤接入百度地图API,定位显示不了解决办法
Android 按照步骤接入百度地图API,定位显示不了解决办法
425 1
|
6月前
|
编译器 API Android开发
Android经典实战之Kotlin Multiplatform 中,如何处理不同平台的 API 调用
本文介绍Kotlin Multiplatform (KMP) 中使用 `expect` 和 `actual` 关键字处理多平台API调用的方法。通过共通代码集定义预期API,各平台提供具体实现,编译器确保正确匹配,支持依赖注入、枚举类处理等,实现跨平台代码重用与原生性能。附带示例展示如何定义跨平台函数与类。
189 0
|
8月前
|
前端开发 Android开发 Windows
27. 【Android教程】下拉选择框 Spinner
27. 【Android教程】下拉选择框 Spinner
278 2
|
8月前
|
API Android开发 开发者
`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView
【6月更文挑战第26天】`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView。它提供高效的数据视图复用,优化的布局管理,支持多种布局(如线性、网格),并解耦数据、适配器和视图。RecyclerView的灵活性、性能(如局部刷新和动画支持)和扩展性使其成为现代Android开发的首选,特别是在处理大规模数据集时。
98 2
|
9月前
|
XML Java Android开发
Android spinner 的使用
Android spinner 的使用
167 6
|
8月前
|
Java Linux API
微信API:探究Android平台下Hook技术的比较与应用场景分析
微信API:探究Android平台下Hook技术的比较与应用场景分析
|
9月前
|
SQL API Android开发
Android API:Activity.managedQuery()
Android API:Activity.managedQuery()
60 2
|
9月前
|
XML Android开发 数据格式
关于Android中Spinner的使用
关于Android中Spinner的使用
118 1
|
9月前
|
API Android开发
Android Framework增加API 报错 Missing nullability on parameter
Android Framework增加API 报错 Missing nullability on parameter
405 1

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 9
    快速调用 Deepseek API!【超详细教程】
  • 10
    如何调用 DeepSeek-R1 API ?图文教程