Android Spinner 下拉菜单控件学习

来源:互联网 发布:css书籍推荐 知乎 编辑:程序博客网 时间:2024/05/30 23:39

Spinner →下拉菜单控件
常用在:
城市的选择,地区的选择和信息的查询等应用。
java.lang.Object
  android.view.View
    android.view.ViewGroup
      android.widget.AdapterView<T extends android.widget.Adapter>
  android.widget.AbsSpinner
   android.widget.Spinner

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="fill_parent"              android:layout_height="fill_parent"        >    <!--用户选择之后显示到textView上-->    <TextView            android:id="@+id/tv"            android:layout_width="match_parent"            android:layout_height="wrap_content"            />    <!--显示用户可选择的列表-->    <Spinner            android:id="@+id/spinner"            android:layout_width="match_parent"            android:layout_height="wrap_content"/></LinearLayout>



res/values/arrays.xml→spinner要显示的数组内容
<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="System">        <item>Windows</item>        <item>Linux</item>        <item>Unix</item>        <item>Google Cloud</item>        <item>Other</item>    </string-array></resources>

java代码:
package com.ncsyeyy.YeyySpinner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class MyActivity extends Activity {    private TextView tv;    private Spinner spinner;//定义字符序列数组用来存储Spinner的数据源    private ArrayAdapter<CharSequence> adapter;    /**     * 问题:     * spinner默认第一项被选中,如果设置默认不是第一个怎么办?     * 在OnItemSelectedListener中选中的回调方法中加入一个判断,在类中设置一个标志变量,     * 开始为false,第一次过后,在OnItemSelectedListener的回调方法中修改标志变量为true?     * spinner.setOnItemSelectedListener(new OnItemSelectedListener() {    @Override    public void onItemSelected(AdapterView parent, View view,    int position, long id) {    switch (position) {    case 0:    if(isFirstIn){//isFirstIn是变量标志吗?    isFirstIn = false;    }else{    Toast.makeText(PostDetail.this, "分享", Toast.LENGTH_SHORT).show();    }    break;    .懂了没,很简单的标记就可以了     * Called when the activity is first created.     */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        findView();        setSpinner();    }    private void setSpinner() {//        将可选内容与arrayAdapter连接起来        adapter = ArrayAdapter.createFromResource(this, R.array.System, android.R.layout.simple_spinner_item);//        设置下拉列表风格//        public static ArrayAdapter<CharSequence> createFromResource(Context context, int textArrayResId, int textViewResId)//        context 应用的上下文//        textArrayResId 数据源数组标识//        textViewResId 用于显示的布局view//        this代表当前的Activity对象//        R.array.planets_array 标识了我们要用到的字符串数组.// R.layout.simple_spinner_item 标识了系统定义的一个标准的Spinner的布局外观。       adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);//        设置spinner的adapter        spinner.setAdapter(adapter);//        spinner.setSelected(0,true);//        添加时间spinner的选择事件监听        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {//                switch (position){//                    case 0://                        if (isFirstIn){//                            isFirstIn=false;//                        }else{                            //                当用户选择了某项的时候,tv显示用户选项                            tv.setText(adapter.getItem(position).toString());//                        }//                }            }            @Override            public void onNothingSelected(AdapterView<?> parent) {//        当用户没有选择任何项的时候,tv显示selected Nothing                tv.setText("Selected Nothing");//似乎并没有什么用            }        });    }    private void findView() {        tv = (TextView) findViewById(R.id.tv);        spinner = (Spinner) findViewById(R.id.spinner);    }}


源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9107131


0 0
原创粉丝点击