zoukankan      html  css  js  c++  java
  • 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>

    结束

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

  • 相关阅读:
    XAF 有条件的对象访问权限
    XAF 顯示 UnInplace Report(設置自定義條件顯示報表,不是根據選擇ListView記錄條件顯示報表)
    XAF 如何自定义PivotGrid单元格显示文本?
    XAF 如何布局详细视图上的按钮
    XAF How to set size of a popup detail view
    XAF Delta Replication Module for Devexpress eXpressApp Framework
    XAF 帮助文档翻译 EasyTest Basics(基础)
    XAF 用户双击ListView记录时禁止显示DetailView
    XAF How to enable LayoutView mode in the GridControl in List Views
    XAF 如何实现ListView单元格批量更改?
  • 原文地址:https://www.cnblogs.com/over140/p/1879794.html
Copyright © 2011-2022 走看看