Android中Spinner的构建(可调节Item中内容)
Android中Spinner的构建(可调节Item中内容)
2013-05-07 21:14:44
最近在设计一个页面中有涉及Spinner的构建以及对spinner中文字的调整,感觉比较有用。写下自己的学习过程,希望对大家有帮助。
1、一般Spinner的构建
layout文件中的代码:
1 <Spinner 2 android:id="@+id/DepartmentSpinner" 3 android:layout_width="150sp" 4 android:layout_height="50sp" 5 android:entries="@array/department" 6 android:scrollbars="vertical" 7 android:background="#B0C4DE"/>
department.xml中的代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string-array name="department"> 4 <item>请选择部门</item> 5 <item>局长室</item> 6 <item >公会</item> 7 <item >办公室</item> 8 </string-array> 9 </resources>
通过以上方法构建的Spinner,直接在View中调用,显示的效果不佳。如,字体的大小、颜色不能调节。通过在网上的查询,我找到了另一种更为方便的方法。
2、修改控件Spinner内容的字体大小 颜色等属性
实现代码如下:
1 public class MainActivity extends Activity { 2 String[] numbers = { "请选择部门", "局长室", "公会", "办公室"} 3 4 @Override 5 public void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_main); 8 Spinner spinner = (Spinner) findViewById(R.id.spinner); 9 SpinnerAdapter adapter = new SpinnerAdapter(this, 10 android.R.layout.simple_spinner_item, numbers); 11 spinner.setAdapter(adapter); 12 } 13 14 private class SpinnerAdapter extends ArrayAdapter<String> { 15 Context context; 16 String[] items = new String[] {}; 17 18 public SpinnerAdapter(final Context context, 19 final int textViewResourceId, final String[] objects) { 20 super(context, textViewResourceId, objects); 21 this.items = objects; 22 this.context = context; 23 } 24 25 @Override 26 public View getDropDownView(int position, View 27 convertView, ViewGroup parent) { 28 if (convertView == null) { 29 LayoutInflater inflater = LayoutInflater.from(context); 30 convertView = inflater.inflate( 31 android.R.layout.simple_spinner_item, parent, false); 32 } 33 34 TextView tv = (TextView) convertView 35 .findViewById(android.R.id.text1); 36 tv.setText(items[position]); 37 tv.setTextColor(Color.BLUE); 38 tv.setTextSize(18); 39 return convertView; 40 } 41 42 @Override 43 public View getView(int position, View convertView, 44 ViewGroup parent) { 45 if (convertView == null) { 46 LayoutInflater inflater = LayoutInflater.from(context); 47 convertView = inflater.inflate( 48 android.R.layout.simple_spinner_item, parent, false); 49 } 50 51 52 TextView tv = (TextView) convertView 53 .findViewById(android.R.id.text1); 54 tv.setText(items[position]); 55 tv.setTextColor(Color.BLUE); 56 tv.setTextSize(18); 57 return convertView; 58 } 59 } 60 }
SpinnerAdapter继承了ArrayAdapter,他必须压重构两个方法getDropDownView()和GetView()
通过上面的代码可以实现如下效果:


浙公网安备 33010602011771号