目录
1.应用场景
2.常用属性
3.xml数据源+布局实现Spinner
4.Arrayadapter+ArrayList+布局实现Spinner
5.自定义adapter+数据源+布局实现Spinner
6.多级连联动Spinner实现(市县区三级联动)
1.应用场景
Spinner即列表选项框多应用于城市选择或者一些搜索分类选取一种的情况
2.常用属性
3.xml数据源+布局实现Spinner
1)数据源myarraylist.xml
2)主布局xml
3)Java类文件
4)效果截图
1)自定义的已选取item的布局drop_item.xml
2)主布局文件
1.应用场景
2.常用属性
3.xml数据源+布局实现Spinner
4.Arrayadapter+ArrayList+布局实现Spinner
5.自定义adapter+数据源+布局实现Spinner
6.多级连联动Spinner实现(市县区三级联动)
1.应用场景
Spinner即列表选项框多应用于城市选择或者一些搜索分类选取一种的情况
2.常用属性
<span style="font-size:14px;"> <!--设置xml数组资源-->
android:entries="@values/"
<!--设置列表框背景-->
android:popupBackground=""
<!--列表框选中时的背景-->
android:dropDownSelector=""
<!--设置显示选择项的宽-->
android:layout_width="wrap_content"
<!--设置显示选择项的高-->
android:layout_height="wrap_content"
<!--设置列表框的水平偏移量-->
android:dropDownHorizontalOffset="12dp"
<!--设置列表框的垂直偏移量-->
android:dropDownVerticalOffset="1dp"
<!--设置列表框的宽度-->
android:dropDownWidth="40dp"
<!--设置spinner的显示模式-->
android:spinnerMode="dropdown|dialog"
<!--设置列表框的scrollbar的布局方式-->
android:scrollbars="vertical"
<!--设置对话框模式的标题,仅限strings.xml设置的资源-->
android:prompt=""
<!--设置列表框的水平scrollbar的drawble-->
android:scrollbarThumbHorizontal="@mipmap/ic_launcher"
<!--设置垂直滚动条的背景-->
android:scrollbarTrackHorizontal=""</span>
3.xml数据源+布局实现Spinner
1)数据源myarraylist.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="myarraydata">
<item>上海</item>
<item>北京</item>
<item>广州</item>
<item>深圳</item>
<item>杭州</item>
<item>成都</item>
</string-array>
</resources>
</span>
2)主布局xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.spinnerui.MainActivity">
<Spinner
android:id="@+id/dropdownSp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:dropDownHorizontalOffset="5dp"
android:dropDownVerticalOffset="5dp"
android:entries="@array/myarraydata"
>
</Spinner>
</RelativeLayout></span>
3)Java类文件
<span style="font-size:14px;">package com.example.spinnerui;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private Spinner dropdownSp;
//Spinner默认选择第一项,所以刚进入是会触发onItemSelected事件,为了解决这个问题定义类firstSelect
private boolean firstSelect=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
dropdownSp= (Spinner) findViewById(R.id.dropdownSp);
//设置监听
dropdownSp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
/*
* parent:指示spinner
* view:显示item的空间,这里指TextView
* position:被选中的item的位置
* id:选中项的id
* */
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (!firstSelect)
{
//打印提示,parent.getItemAtPosition(position)获取选中位置的值
Toast.makeText(MainActivity.this,"你选择了:"+parent.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT).show();
Log.d("id",id+"");
Log.d("position",position+"");
Log.d("view",view.toString());
Log.d("parent",parent.toString());
}else {
firstSelect=false;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
</span>
4)效果截图
1)自定义的已选取item的布局drop_item.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/list_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorAccent"
xmlns:android="http://schemas.android.com/apk/res/android" /></span>
2)主布局文件
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_h