写一篇文章很辛苦啊!!!
转载请注明,联系请邮件nlp30508@qq.com
我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:activity切换特效.zip我的博客写的比较乱,如果本篇文章没有看懂,
请先看上篇文章,地址:http://blog.csdn.net/u014737138/article/details/4086613
前面我们简单的学习了Spinner控件,接下来总结下并整合下网上大家说的比较好的内容
Spinner控件的学习有以下几点:
1.在XML文件中定义
<LinearLayout …… >
<TextView android:id="@+id/spinner_label" …… />
<!-- 经过网友的测试android:drawSelectorOnTop="true | false"不起作用,因此此参数可以不设置,我在编写使用alt+/没有这个属性显示出来-->
<Spinner android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
2.使用适配器填充数据
1)设置Spinner之中的元素内容,采用了ArrayAdapter来描述,并通过setApdater()来设置adapter
这个适配器的构造有两种,一种是在activity类中定义常量,生成数组放入构造函数的参数中
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,list>
一种是从资源文件中构造,也就是调用ArrayAdapter.createFromResource(this,R.array.xx,android.R.layout.simple_spinner_item)
这两种方法都是可以的,区别就是如果下拉列表非常多的话,肯定就选择XML文件来做,也就是第二种
关于构造ArrayAdapter的参数问题还是有必要要解释下:
android.R.layout.simple_spinner_item 该参数表示Spinner没有展开前的UI类型
simple_spinner_dropdown_item这是点击圆圈选择方式
2)将Spinner控件和适配器进行绑定
spinner.setAdapter(spinnerAdapter);
3)使用setOnItemSelectedListener()来设置Spinner的点击触发的callback函数,有onItemSelected和onNothingSelected两个接口需要具体给出。
3.数据内容的XML文件。arrays.xmlpublic class SpinnerTest extends Activity implements OnItemSelectedListener{
protected void onCreate(Bundle savedInstanceState) {
……
spin.setOnItemSelectedListener(this);
… …
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
//如果选中了,在这里写你想要处理的代码
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
<resources>
<string name="planet_prompt">太阳系行星:</string>
<string-array name="planets_arry">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
这个XML文件中有一行code是这样的:<string name="planet_prompt">太阳系行星:</string>
在layout的xml中:
使用了 planet_prompt android:prompt 属性解释:在Spinner中,我们设置了prompt,根据@string在strings.xml中查找,prompt的内容为“太阳系行星:”在我们点击展开Spinner中,我们可以看到在最上面增加了提示,如上图所示。<LinearLayout … >
<TextView … />
<Spinner android:id="@+id/spinner4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/planet_prompt" />
</LinearLayout>
Spinner有两个属性1:prompt是初始的时候,Spinner显示的数据,是一个引用类型 2:entries是直接在xml布局文件中绑定数据源(可以不设置,即可以在Activity中动态绑定)
到这里基本要说的都说了,写的过程中参考文章:http://blog.csdn.net/flowingflying/article/details/6260829
关于适配器不一定非要用ArrayAdapter,还可以自己去定义自己的适配器,如何自定义适配器,请看我前面的文章,继承BaseAdapter