自学Android系列 笔记2 spinner控件 例子

来源:互联网 发布:触动精灵源码 编辑:程序博客网 时间:2024/06/05 13:21

Spinner控件是一种下拉列表,提供一些数据供用户选择,它的数据源是通过ArrayAdapter提供的,而ArrayAdater的数据源有两种方式提供,一种是在资源文件中,另一种则是在程序中构造数组。下面是例子:

packagecom.my.simple;

 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Log;

importandroid.view.View;

import android.widget.AdapterView;

importandroid.widget.AdapterView.OnItemSelectedListener;

importandroid.widget.ArrayAdapter;

importandroid.widget.Spinner;

importandroid.widget.Toast;

 

public classSpinnerDemo extends Activity {

    /** Called when the activity is firstcreated. */

      String[] bloodType = newString[]{"A","B","AB","O"};

      private static final boolean DEBUG = true;

      private static final String TAG ="SpinnerDemo";

    @Override

    public void onCreate(BundlesavedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        Spinner mSpinnerBloodType =(Spinner)findViewById(R.id.Bloodspinner);

        Spinner mSpinnerColor =(Spinner)findViewById(R.id.Colorspinner);

       

        //构建ArrayAdapter,数据源是数组

        ArrayAdapter mbloodAdapter = newArrayAdapter(this,android.R.layout.simple_spinner_item,bloodType);

        //构建ArrayAdapter,数据源是资源文件

        ArrayAdapter mColorAdapter =ArrayAdapter.createFromResource(this, R.array.colors, android.R.layout.simple_spinner_item);

       

        //设置下拉列表样式

       mbloodAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

       mColorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

       

       mSpinnerBloodType.setAdapter(mbloodAdapter);

       

        //添加监听器

       mSpinnerBloodType.setOnItemSelectedListener(newOnItemSelectedListener(){

             

                 @Override

                 public voidonItemSelected(AdapterView<?> arg0, View arg1,

                            int arg2, long arg3) {

                      // TODO Auto-generatedmethod stub

                      if(DEBUG){

                            Log.d(TAG,String.valueOf(arg0));

                            Log.d(TAG,String.valueOf(arg1));

                            Log.d(TAG,String.valueOf(arg2));

                            Log.d(TAG,String.valueOf(arg3));

                      }

                      Toast.makeText(SpinnerDemo.this,

                                  SpinnerDemo.this.getResources().getString(R.string.selectedItem)+":"+bloodType[arg2],Toast.LENGTH_SHORT).show();

                 }

 

                 @Override

                 public voidonNothingSelected(AdapterView<?> arg0) {

                      // TODO Auto-generatedmethod stub

                     

                 }

             

        });

       mSpinnerColor.setAdapter(mColorAdapter);

       

       

    }

}

 

下面是资源文件代码:

<?xmlversion="1.0" encoding="utf-8"?>

<resources>

      <string-arrayname="colors">

           <item>黑色 | Black</item>

          <item>蓝色 | Blue</item>

          <item>棕色 | Brown</item>

          <item>绿色 | Green</item>

          <item>灰色 | Grey</item>

          <item>粉色 | Pink</item>

          <item>紫色 | Purple</item>

          <item>红色 | Red</item>

          <item>白色 | White</item>

          <item>黄色 | Yellow</item>

      </string-array>

</resources>

0 0
原创粉丝点击