首先在布局文件中声明spinner控件
<Spinner android:id="@+id/spner" android:layout_width="fill_parent" android:layout_height="wrap_content" />
如果是静态定义spinner中的元素的话,需要在资源文件string.xml中声明字符串数组
<string-array name="str_ary"> <item>Earth</item> <item>Mars</item> <item>Venus</item> </string-array>
在Activity中new一个Spinner变量,并且为其绑定适配器,并安装监听器,设置监听到动作时的操作。
注:注释中的内容是用xml文件中的静态的数组定义适配器
package com.example.spinnerantivity; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { TextView tv1=null; Spinner sp1=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1=(TextView)findViewById(R.id.num); sp1=(Spinner)findViewById(R.id.spner); tv1.setText("fuck"); List<String> list=new ArrayList<String>(); list.add("fuck"); list.add("shit"); list.add("bitch"); ArrayAdapter adapter=new ArrayAdapter (this,R.layout.spx,R.id.ttx,list); // 参数1:当前上下文对象。 // 参数2:菜单中每个条目的布局文件,这里使用自定义的。 // 参数3:无论条目的样式如何,都需要有显示文字的textview控件,这个参数就是该控件Id。 // 参数4:list对象,就是自定义的动态列表数据。 /* ArrayAdapter<CharSequence> adapter= ArrayAdapter.createFromResource(this,R.array.str_ary,android.R.layout.simple_spinner_item); // 参数1:当前上下文对象。 // 参数2:就是在第二步String.xml中定义的数组,也就是下拉菜单的内容。 // 参数3:下拉菜单的整体样式,这里定义的是Android自带的标准样式,当然也可以自定义。 adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); // 设置下拉菜单中每一个选项(item)的样式,这里定义的也是Android自带的标准样式,当然也可以自定义。 */ sp1.setAdapter(adapter); sp1.setPrompt("MySpinner"); //作用是给下拉菜单添加标题 sp1.setOnItemSelectedListener(new SpinnerListener()); } class SpinnerListener implements OnItemSelectedListener{ public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //这个函数当选择下拉菜单选项时调用,第一个参数是下拉菜单控件,第二个参数是当前被选中的Item, //第三个参数是选中的位置,第四个参数是当前选中的Id。 String selected=arg0.getItemAtPosition(arg2).toString(); tv1.setText(selected); // TODO Auto-generated method stub } //这个函数当下拉菜单什么也没选时调用。 public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }