一、使用XML作为数据源
1.在布局文件当中声明:
1 2 3 4 5 | <Spinner android:id="@+id/spinnerId" android:layout_width="fill_parent" android:layout_height="wrap_content" /> |
2.在string.xml当中声明一个数组:
1 2 3 4 5 6 7 8 9 10 | <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> |
3.创建一个ArrayAdapter:
1 2 3 4 5 6 7 8 9 | //通过createFromResource方法创建一个ArrayAdapter对象 //第一个参数是指上下文对象 //第二参数引用了在strings.xml文件当中定义的String数组 //第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可替换为自己定义的布局文件 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item); //设置Spinner当中每个条目的样式,同样是引用一个Android系统提供的布局文件 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
4.得到Spinner对象,并设置数据:
1 2 3 | spinner = (Spinner) findViewById(R.id.spinnerId); spinner.setAdapter(adapter); spinner.setPrompt("测试"); |
5.创建一个监听器,并设置监听:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //这个监听器主要用来监听用户选择列表的动作 class SpinnerOnSelectedListener implements OnItemSelectedListener{ //当用户选定了一个条目时,就会调用该方法 @Override public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { String selected = adapterView.getItemAtPosition(position).toString(); System.out.println(selected); } @Override public void onNothingSelected(AdapterView<?> adapterView) { // TODO Auto-generated method stub System.out.println("nothingSelected"); } } //为spinner对象绑定监听器 spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener()); spinner.setVisibility(View.VISIBLE); |
二、使用数组作为数据源
因为步骤和上面的差不多,我就直接上代码了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //通过ID,得到Spinner对象 spinner = (Spinner) findViewById(R.id.spinnerId); List<String> list = new ArrayList<String>(); list.add("test1"); list.add("test2"); //调用ArrayAdapter的构造函数来创建ArrayAdapter对象 //第一个参数是指上下文对象 //第二个参数指定了下拉菜单当中每一个条目的样式 //第三个参数指定了TextView控件的ID //第四个参数为整个列表提供数据 ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textViewId,list); spinner.setAdapter(adapter); spinner.setPrompt("测试"); //为spinner对象绑定监听器 spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener()); //这个监听器主要用来监听用户选择列表的动作 class SpinnerOnSelectedListener implements OnItemSelectedListener{ //当用户选定了一个条目时,就会调用该方法 @Override public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { String selected = adapterView.getItemAtPosition(position).toString(); System.out.println(selected); } @Override public void onNothingSelected(AdapterView<?> adapterView) { // TODO Auto-generated method stub System.out.println("nothingSelected"); } } |
除非注明,饮水思源博客文章均为原创,转载请以链接形式标明本文地址