Android 常见控件Spinner

来源:互联网 发布:mac os 彻底删除软件 编辑:程序博客网 时间:2024/05/19 19:13

1.什么是spinner



2.创建一个Spinner的步骤

①在布局文件当中声明

<Spinner

android:id ="@+id/spinnerId"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>


②在String.xml当中声明一个数组:                           //一个item就是一个对象     ,为Spinner下拉列表提供数据

<String-array name = "planets_array">

<item>Mercury</item>

<item>Venus</item>

<item>Earth</item>

<item>Mars</item>

<item>Jupiter</item>

<item>Saturn</item>

<item>Uranus</item>

<item>Neptune</item>

</String-array>

③创建一个ArrayAdapter:

ArrayAdapter<CharSequence>  adapter = 

ArrayAdapter,createFromResource(

           this,                                                                  //一个Content对象,第一个参数是指上下文对象

           R.array,planets_array,                                //调用String. xml的array对象,第二个参数引用了在String.xml文件当中定义的string数组

           android,R,layout.simple_spinner_item);                      //定义下拉菜单的样式,第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可替换为自己定义的布局文件

adapter.setDropDownViewResource(

          android.R.layout.simple_spinner_dropdown_item);                              //定义下拉菜单每一个item的样式,设置Spinner当中每一个条目的样式,同样是引用一个Android系统提供的布局文件 

④得到Spninner对象,并设置数据:
Spinner = 

(Spinner)findViewById(R.id.spinnerId);

spinner.setAdapter(adapter);

spinner.setPrompt("测试" );                                                //设置标题




创建一个监听器              这个监听器主要用来监听用户选择列表的动作

class SpinnerOnSelectedListener implements OnItemSelectedListener{

public void onitemSelected(AdapterView<?> 

    adapterView,Viewview,int position,                                    //  AdapterVIew    代表当前整个列表      view当前被选中的View      position选中的位置     id  选中的id,当用户选定一个条目时,就会调用该方法

long id ){

String selected = 

              adapterView.getItemAtPosition(position).toString();

}

public void onNothingSelected(AdapterView<?>adapterView )

{

System.out.println("nothing selected");

}




spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());   为Spinner对象绑定监听器









ArrayAdapter的另外一种使用方法

除了从可以使用Strings.xml文件当中的数组创建ArraryAdapter之外,还可以动态的创建ArrayAdapter

List<String> list = new ArrayList<String> ():

list.add("test1");

list.add("test2");

ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textViewId,list);        //调用Arrayadapter的构造函数来创建ArrayAdapter对象

    //this ,   Context, 第一个参数是指上下文对象            ;          R.layout.item 每一个条目的布局文件 ,      第二个参数指定了下拉菜单当中每一个条目的样式

   R.id.textviewId 可以任意写,单里面必须有一个textview,用来显示条目是什么,第三个参数指定了Textview控件的id                ;    

 list就是这个数据,第四个参数为整个列表提供数据(可以放任何对象,它会把这个对象调用toString方法得到的结果复制给textview)









0 0
原创粉丝点击