Android 控件:使用下拉列表框--Spinner

---恢复内容开始---

一、前段代码


<Spinner
android:id="@+id/spin"
android:paddingTop="10px"
android:layout_width="fill_parent"
android:layout_height="50sp"/>

<Button
android:id="@+id/addList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加" />

二、接下来新建一个下拉列表的视图资源,即每个Item的TextView,我们把它命名为dropdown.xml,我们把它放到drawable中,代码为:


<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="20sp"
android:singleLine="true"
style="?android:attr/spinnerDropDownItemStyle"
/>

三、创建Adapter

这里介绍下两个函数:

1.ArrayAdapter.ArrayAdapter(Context context,int
textViewResourcId,List<String> objects)

我们可以通过它创建新的Adapter对象,这里需要三个参数:

(1)context上下文关系,就是这个Adapter属于哪个Activity,属于哪个应用程序。

(2)textViewResourcId TextView的资源id

(3)
 最后一个参数是你要向下拉列表中添加的数据,可以是一个静态的String数组,也可以是一个动态的List<String>;

2.AdapterView.setOnItemSelectedListener(OnItemSelectedListener
listener),使用这个方法为Spinner对象设置监听器。这里参数是OnItemSelectedListener
接口,实现这个接口需要重写两个方法:

(1)public void onItemSelected(AdapterView<?> parent, View view,int
position, long id) 

这个方法中可以完成当选项被选中时要做的处理。四个参数的含义:

  • AdapterView<?> parent,这个类似context,只是范围比较下,指你当前操作的AdapterView

  • View view ,这个参数是你具体单击的那个TextView对象

  • int position 这个参数的意思是你单击的那个view在整个AdaterView中的位置

  • long id 单击view的id

(2)public void onNothingSelected(AdapterView<?> parent)

这个回调函数在AdapterView中没有选项时调用。

完整代码如下:


    private Spinner spinner;
private TextView tv;
private ArrayAdapter<String> adapter;
private static final String[] years = { "小于1年", "1年-3年", "3年-5年", "5年以上" };
private ArrayList<String> array = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
spinner = (Spinner) findViewById(R.id.spin);

tv = (TextView) findViewById(R.id.textView1);

for (int i = 0; i < years.length; i++) {
array.add(years[i]);
}
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, array);
adapter.setDropDownViewResource(R.drawable.dropdown);

spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO 自动生成的方法存根
String seleted = array.get(position);
tv.setText(seleted);
parent.setVisibility(View.VISIBLE);
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO 自动生成的方法存根
tv.setText("您没有选择");
}

});

---恢复内容结束---

Android 控件:使用下拉列表框--Spinner,布布扣,bubuko.com

时间: 2024-10-12 04:00:43

Android 控件:使用下拉列表框--Spinner的相关文章

android控件开发之Spinner控件

android控件开发之Spinner控件 概述:android中,Spinner控件主要是用来显示下拉列表,同时,用户可以选择列表中的数据,作为当前的选择 java代码: 此代码中使用了两种方法给Spinner提供数据(method 1和method 2).运行时任选其一即可 方法一: 使用的动态list的形式给Spinner提供数据 方法二: 使用的Strings.xml中定义的固定String array提供数据 根据项目需要,选择相关方法即可 package com.example.sp

android控件---spinner

spinner下拉列表框的列表项有两种配置方式: 1.通过资源文件配置,通过在values种的xml,比如strings.xml中使用<string-array>元素添加制定列表项内容,然后通过android:entries=”@array/xxid”的方式进行链接. 2.通过android.widget.ArrayAdapter类读取资源文件或者指定具体设置数据. 一:资源文件配置方式. <?xml version="1.0" encoding="utf-

Android 控件使用

1.Android控件之TextView探究 2.Android控件之EditView探究 3.Android控件之CheckBox.RadioButton探究 4.Android控件之ImageView探究 5.Android控件之GridView探究 6.Android控件之ListView探究一 7.Android控件之ListView探究二 8.Android控件之ToggleButton探究 9.Android控件之DatePicker.TimePicker探究 10.Android控

Android控件介绍

Android控件介绍 多选按钮(CheckBox) CheckBox有两个常用的事件,OnClickListener事件和OnClickChangeListener事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w

Android控件(2)RadioButton&amp;RadioGroup

抄自: http://www.cnblogs.com/wt616/archive/2011/06/20/2085531.html 学习目的: 1.掌握在Android中如何建立RadioGroup和RadioButton 2.掌握RadioGroup的常用属性 3.理解RadioButton和CheckBox的区别 4.掌握RadioGroup选中状态变换的事件(监听器) RadioButton和CheckBox的区别: 1.单个RadioButton在选中后,通过点击无法变为未选中 单个Che

Android 控件的触摸事件传递与处理

了解Android控件的触摸事件传递与处理对我们日常开发中自定义控件和触摸事件冲突解决有重大意义.Android控件的触摸事件传递和处理主要有以下几个方法,下面一一介绍. 一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev);                                                                                               接收到触摸事件时,是否

android控件篇:ViewPager+Fragment+GridView的使用(与AndroidQuery框架结合)

最近看了一个AndroidQuery的框架,里面的Demo,有个界面,让博主很喜欢.左右滑动十分顺畅,手感很好,于是拿来和大家分享一下.先看一下效果图: 从图中可以看出,上面的布局是一个Layout里面嵌套有个ViewPager,ViewPager中包含着Fragment,Fragment的布局文件包含了一个简单的GridView,GridView的Item布局很简单,就是一个100*100大小的图片.好啦,先说这么多,然后咱们看代码吧. 最外层Activity的布局文件 <?xml versi

Android 控件布局常用属性

<!--单个控件经常用到android:id -- 为控件指定相应的IDandroid:text -- 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串android:grivity -- 指定控件的基本位置,比如说居中,居右等位置android:textSize -- 指定控件当中字体的大小android:background -- 指定该控件所使用的背景色,RGB命名法 android:width -- 指定控件的宽度android:height --

Android控件上添加图片

项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在xml里可以进行设置,也可以在代码中进行绘图. 下面是两种方法的设置: 1.xml里:一些控件:button.textView等等里面有个属性是android:drawableLeft 就可以将pic设置到text的左边.good.... 2.代码中: TextView txtlikedList = new TextView(this.getContext()); Drawable drawable= getResources().getD