Spinner

来源:互联网 发布:二叉树层次遍历 python 编辑:程序博客网 时间:2024/06/05 12:04

Spinner:下拉列表控件,ArrayAdapter:数组适配器
属性:
android:spinnerMode=””
dialog:对话框模式
dropdown:下拉模式

使用:    1)在xml文件当中摆放spinner控件    <Spinner        android:id="@+id/spinner"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:spinnerMode="dialog"         android:entries="@array/" //静态添加数据        />    2)在java代码中        //声明控件            private Spinner spinner;        //初始化控件            spinner = (Spinner) findViewById(R.id.spinner);        //加载布局            setContentView(R.layout.activity_main);        //得到数据源(自己创建)            两种方式:            1):在java中定义:String [] arr={};                String[] content = { "北京", "上海", "辽宁", "广州", "深圳" };            2):在XML中定义:为值---字符串类型,写在value包下String.XML中                XML中为String-Array控件                String city[] =getResources().getStringArray(R.array.city);        //创建适配器:            方式一:三个参数的适配器,将数据源作为第三个参数传入适配器中                /*                 * 第一个参数:上下文对象                  * 第二个参数:布局文件(每个条目(item)的布局文件)                 *      android.R.layout.simple_spinner_item:系统自带的                 *      自己定义:在layout中创建xml通过R.layout.  找到                 *  第三个参数:数据源                 */                ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.item,content);            方式二:两个参数的,好处是可以更改数据源                ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(MainActivity.this,R.layout.item);                adapter1.addAll(city);            方式三:四个参数的,可以linearLayout写textView 不用将TextView作为根                /*l:上下文对象                 * 2.布局文件                 * 3.textView控件的id                 * 4.数据源                 * */                ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(MainActivity.this, R.layout.item_lin, R.id.text, city);        //控件绑定适配器            spinner.setAdapter(adapter1);        //控件监听            setOnItemSelectedListener实现OnItemSelectedListener接口            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {                //有内容的时候会调用,spinner有item                /*id:索引(下标)                 * position:位置                 *                  * */                @Override                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                    // TODO Auto-generated method stub                              }                //spinner里面没有内容的时候会调用这个重写的方法                @Override                public void onNothingSelected(AdapterView<?> parent) {                    // TODO Auto-generated method stub                              }            });             }
0 0
原创粉丝点击