06 - 基本控件:Spinner下拉框

来源:互联网 发布:文件自毁软件 编辑:程序博客网 时间:2024/06/03 22:41
转载注明出处:http://blog.csdn.net/eana_don/article/details/8285174

参考资料:《疯狂Android讲义》,官网API


下拉框是一种提供用户多种选择的控件。当不需要用户输入需要用户选择并且可选择项较多时,就可以采用下拉框。而Android里面的下拉框与一般网页上的下拉框及JAVA图形界面的下拉框在展现上不一样,一般网页上的下拉框是点击之后下拉菜单,而在Android则是点击之后弹出菜单提供选择。所以一般下拉框的样式默认都是弹出式的列表,列表项都带一个单选框。当然,下拉框的样式都是可以自定义的。下拉框的数据来源可以是Adapter,可以是数组,也可以是定义好的资源文件比如array.xml。


一、使用定义好的资源文件作为下拉框的数据来源,使用默认样式。


1.xml资源文件


<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="countries_array">        <item>Afghanistan</item>        <item>Albania</item>        <item>Algeria</item>        <item>American Samoa</item>        <item>Andorra</item>        <item>Angola</item>        <item>Anguilla</item>        <item>America</item>        <item>China</item>        <item>Japan</item>        <item>Korea</item>        <item>England</item>    </string-array></resources>


2.布局文件写法

<Spinner        android:id="@+id/spinner_1"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        android:entries="@array/countries_array"        />





3.代码控制:监听数据改变结果

spinner_1 = (Spinner) findViewById(R.id.spinner_1);spinner_1.setOnItemSelectedListener(this);//类本身实现接口OnItemSelectedListener@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubSystem.out.println("您选中的项为:" + arg2);}



4.结果


二、使用Adapter作为下拉框的数据来源,使用自定义样式。

1.布局文件写法

<Spinner        android:id="@+id/spinner_2"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        />    <Spinner        android:id="@+id/spinner_3"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        />





2.代码控制:设置Adapter

spinner_2 = (Spinner) findViewById(R.id.spinner_2);        spinner_3 = (Spinner) findViewById(R.id.spinner_3);                      BaseAdapter ba_2 = new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextView text = new TextView(SpinnerActivity.this);text.setText(position+"");text.setTextSize(20);return text;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 10;}};spinner_2.setAdapter(ba_2);        //自定义的Spinnner        BaseAdapter ba_3 = new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubLinearLayout line = new LinearLayout(SpinnerActivity.this);line.setOrientation(0);ImageView icon = new ImageView(SpinnerActivity.this);icon.setImageResource(R.drawable.contact);TextView text = new TextView(SpinnerActivity.this);text.setText(position+"");text.setTextSize(20);line.addView(icon);line.addView(text);return line;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 10;}};spinner_3.setAdapter(ba_3);



3.结果




原创粉丝点击