• 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>

    结束

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

  • 相关阅读:
    JAVA 多态
    win10 快捷键
    MSTAR SETBOX 常用API
    MSTAR GUI
    APACHE2 服务器配置 (一)
    MSTAR SERVICE结构
    各个国家 不同字符集的unicode 编码范围
    PhpStorm中如何配置SVN,详细操作方法
    PHP/Javascript 数组定义 及JSON中的使用 ---OK
    The "Run One Program Only" Phenomenon
  • 原文地址:https://www.cnblogs.com/over140/p/1879794.html
Copyright © 2020-2023  润新知