您的位置:首页 > 其它

Spinner

2016-02-21 22:13 190 查看
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
}
4000

//spinner里面没有内容的时候会调用这个重写的方法
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: