网站已经备案更换主机,wordpress 文章设置,广告设计公司职位,给别人做彩票网站违法吗Spinner是Android的下拉列表控件#xff0c;今天对这个控件进行了学习#xff0c;发现该控件比其它简单控件使用起来稍微复杂#xff0c;特地将Spinner控件的使用方法以及注意事项记录下来#xff0c;以备后用。Spinner控件在Android中的继承结构如下#xff1a;java.lang…Spinner是Android的下拉列表控件今天对这个控件进行了学习发现该控件比其它简单控件使用起来稍微复杂特地将Spinner控件的使用方法以及注意事项记录下来以备后用。Spinner控件在Android中的继承结构如下java.lang.Object↳ android.view.View↳ android.view.ViewGroup↳ android.widget.AdapterView↳ android.widget.AbsSpinner↳ android.widget.Spinner由此可见Spinner的继承结构比较复杂在继承树中有AdapterView这是比较重要的一项因为我们就是通过Adapter来为Spinner设置下拉列表项的。 Spinner的重点问题就是下拉列表项的配置通过之前组件的了解我们知道资源组件的配置有两种方式一种是通过XML文件来配置一种是通过程序来配置。而从Spinner的文档中我们可以看到对它的配置需要使用Adapter类的实现。下面分别对两种方式配置Spinner控件的列表项进行介绍。一. XML方式配置Spinner列表项首先给出一个主视图的XML布局代码android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationvertical android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text收入类别:android:idid/textView /android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:entriesarray/arr_incomeTypeandroid:promptstring/incomeType_promptandroid:idid/spinner_incomeType /这段代码定义了一个TextView控件和Spinner控件Spinner控件指定了entries属性为一个字符串数组对应的ID为arr_incomeType这个数组被定义在一个名为arrays.xml的资源文件中arrays.xml的内容如下上班收入礼尚往来 意外收入其它收入这样Spinner就定义完成了下面我们看看Activity类的实现代码package com.example.myapplication2.app;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends Activity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_activity);}}这个Activity类重载了onCreate方法在其中指定了Activity对应的布局文件最终的运行效果如下:二. 使用程序实现Spinner的列表项下面我们看看如何通过程序来控制Spinner和列表项之前说过要使用程序就要用到Adapter类下面我们介绍这种方法实现Spinner的下拉列表。主视图布局XML文件Spinner相关的布局代码如下android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationvertical android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text收入类别:android:idid/textView /android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:promptstring/incomeType_promptandroid:idid/spinner_incomeType /和前面相比我们去掉了Spinner的android:entries属性定义我们在程序中完成这项工作。和第一种方式一样我们在arrays.xml文件中定义id为arr_incomeType的数组下面是我们Activity类对应的实现代码package com.example.myapplication2.app;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends Activity {private Spinner incomeType;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_activity);// 建立数据源String[] mItems getResources().getStringArray(R.array.arr_incomeType);incomeType (Spinner)this.findViewById(R.id.spinner_incomeType);// 建立Adapter并且绑定数据源ArrayAdapter _Adapternew ArrayAdapter(this,R.layout.simple_spinner_item, mItems);//绑定 Adapter到控件incomeType.setAdapter(_Adapter);}}这次我们通过字符串数组构造了一个ArrayAdapter并使用Spinner类的setAdapter方法将这个ArrayAdapter与Spinner控件关联实现的效果与方案一一样。注意我们构造数组使用了getResources().getStringArray()方法该方法可以直接从资源文件加载数组对象。ArrayAdapter构造函数的第一个参数是上下文直接指定当前的Activity即可第二个参数是一个布局对象指定了列表项的布局方式第三个参数是包含列表项内容的数组对象。ArrayAdapter构造函数的第二个参数你可以使用android系统提供的布局对象如android.R.layout.simple_spinner_item也可以使用自定义的布局对象本例使用的布局对象定义在一个名为simple_spinner_item.xml文件中定义的布局对象该文件的内容如下android:idandroid:id/text1android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitybottomandroid:height35dp/这个布局非常简单没有太多可以介绍的内容。到此Android的Spinner用法就基本介绍完了感兴趣的朋友欢迎补充^_^【发表评论0条 】