今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,
下面演示一下Spinner的使用使ArrayAdapter实现
使用ArrayAdapter进行适配数据:
1,spinner_layout.xml的一个布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown" /> </LinearLayout>这里需要注意这个Spinner中的这个spinnerMode属性有dropdown和dialog两个属性选项
2,建立源数据建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:
<string-array name="value"> <item >zhangvalue</item> <item>value</item> <item>eulav</item> <item>eulav_ing</item> <item>value_ing</item> </string-array>3, 接着在Activity中加入如下的代码( 使用了系统定义的下拉列表的布局文件,当然也可以自定义 )
spinner = (Spinner) findViewById(R.id.spinner);//初始化控件 String[] value = getResources().getStringArray(R.array.value);//建立数据源 ArrayAdapter adapter = new ArrayAdapter(//建立adapter并绑定数据源 this, android.R.layout.simple_list_item_1, android.R.id.text1, value ); spinner.setAdapter(adapter);//绑定adapter到spinner控件上效果图如下
注意就是这个前两张效果图就是spinner的spinnerMode属性有dropdown和dialog,第三张图片就是给它item添加了事件
添加事件的代码如下:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub String str = parent.getItemAtPosition(position).toString(); Toast.makeText(SpinnerActivity.this, "你确定选择的是"+str, 500).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } });这里注意这spinner给它设置这个 是
OnItemSelectedListener的而不是<pre name="code" class="html" style="color: rgb(85, 85, 85); font-size: 18px; line-height: 35px;">OnItemClickListener不然就会报错,显示如下:<img src="https://img-blog.csdn.net/20151029114500895?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />