Spinner初步了解

android Spinner控件详解 android Spinner控件详解 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。 spinner.png 上图显示的是Spinner常见的样式。这 阅读详情
下拉列表选择框

常用属性:
    android:spinnerMode:列表显示的模式,有两个选择弹出(dialog)或者下拉(dropdown)
    android:entries:使用资源配置数据源
    android:promot:对当前下拉列表设置标题,仅在dialog模式下有效。值必须在@string中设置
    android:dropDownHorizontalOffset:两个方向各种偏移,你懂的,仅在dropdown模式下有用,注意此时包裹内容时的高和宽,例如不能在水平向下偏移的时候设置高是"match_parent"
    android:popupBackGrund:在spinner="dropDown"时,使用这个属性来设置下拉列表的背景。
    

常用方法:
    spinner.setOnItemSelectedListener(new OnItemSelectedListener(){})

1、使用entries资源给Spinner配置数据源的时候需要在string 中添加以下属性string-array
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
<string name="app_name">day033Spinner</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string-array name="girls">
<item >德玛西亚</item>
<item >寒冰猪手</item>
<item >无极剑神</item>
<item >剑姬</item>
<item >剑魔</item>
<item >剑豪</item>
</string-array>
 
</resources>
2、在java文件中添加资源给spinner设置一个适配器spinner.setAdapter()
    |--ArrayAdapter第一个方式,只能放单一的文本 构造方法见代码
    |--SimpleAdapter可以添加文本图片混合的 很吊的  构造方法见代码,有点难啊

代码示意:
    activity_main代码示意:
<LinearLayout 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:orientation="vertical"
tools:context="com.mixm.activity.MainActivity" >
 
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="从资源文件中拿到的" />
<Spinner
android:spinnerMode="dialog"
android:id="@+id/sp_1"
android:prompt="@string/choose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/girls"
/>
<TextView
android:id="@+id/tv_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ff0000"
/>
<View
android:background="#00ff00"
android:layout_width="match_parent"
android:layout_height="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="来自ArrayAdapter" />
<Spinner
android:spinnerMode="dropdown"
android:id="@+id/sp_2"
android:dropDownVerticalOffset="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tv_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ff0000"
/>
<View
android:background="#00ff00"
android:layout_width="match_parent"
android:layout_height="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="来自Adapter" />
<Spinner
android:id="@+id/sp_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tv_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ff0000"
/>
<View
android:background="#00ff00"
android:layout_width="match_parent"
android:layout_height="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="玩玩属性" />
<Spinner
android:id="@+id/sp_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/girls"
android:spinnerMode="dropdown"
android:dropDownWidth="60dp"
android:popupBackground="#00ff00"
/>
 
<View
android:background="#00ff00"
android:layout_width="match_parent"
android:layout_height="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置第一个" />
<Button
android:id="@+id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置"
/>
</LinearLayout>
activity_main2代码示意:
<LinearLayout 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:orientation="horizontal"
tools:context="com.mixm.activity.MainActivity" >
 
<ImageView
android:id="@+id/iv_pic_"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher"
android:scaleType="fitXY"
/>
<TextView
android:id="@+id/tv_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="35dp"
android:text="笑话"
/>
 
</LinearLayout>
MainActivity代码示意:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
 
public class MainActivity extends Activity {
private Spinner sp_1;
private TextView tv_1;
private Spinner sp_2;
private TextView tv_2;
private Spinner sp_3;
private TextView tv_3;
private List<String> girls = new ArrayList<String>();
private Button btn_1;
private SimpleAdapter infos;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
addListener();
}
 
//添加事件监听
private void addListener() {
// TODO Auto-generated method stub
sp_1.setOnItemSelectedListener(new OnItemSelectedListener() {
 
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
tv_1.setText(parent.getClass().toString()+view.getClass().toString()+position+"id:"+id);
}
 
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
sp_2.setOnItemSelectedListener(new OnItemSelectedListener() {
 
//下拉框有数据的时候调用
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
tv_2.setText(parent.getClass().toString()+view.getClass().toString()+position+"id:"+id);
}
 
//当下拉框中没有数据的时候调用
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
//给按钮添加监听事件
btn_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//设置哪个选项被选中
sp_1.setSelection(2);
}
});
}
 
//初始化
private void initView() {
sp_1 = (Spinner) findViewById(R.id.sp_1);
tv_1 = (TextView) findViewById(R.id.tv_1);
sp_2 = (Spinner) findViewById(R.id.sp_2);
tv_2 = (TextView) findViewById(R.id.tv_2);
sp_3 = (Spinner) findViewById(R.id.sp_3);
tv_3 = (TextView) findViewById(R.id.tv_3);
btn_1 = (Button) findViewById(R.id.btn_1);
//给spinner2设置那个啥
girls.add("小红");
girls.add("小花");
girls.add("小丽");
girls.add("嫂子");
girls.add("小黑");
/**
* 给第二个添加适配器
*/
//声明一个适配器 这儿的构造方法很多 不用担心
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,girls);
//设置适配器
sp_2.setAdapter(adapter);
/**
* 给第三个添加适配
*/
List<Map<String, Object>> data = new ArrayList<Map<String,Object>>();
String[] names = {"小红","小黑","小丽","小白","小花"};
int[] pics = {R.drawable.png1,R.drawable.png2,R.drawable.png3,R.drawable.png4,R.drawable.png5};
for (int i = 0; i < names.length; i++) {
HashMap<String, Object> temp = new HashMap<String, Object>();
temp.put("name", names[i]);
temp.put("pic", pics[i]);
data.add(temp);
}
//这儿的位置 一定要一对一
String[] from = {"pic", "name"};
int[] to = {R.id.iv_pic, R.id.tv_name};
infos = new SimpleAdapter(this, data, R.layout.spinner3_item, from, to);
sp_3.setAdapter(infos);
}
}
TextView+Spinner的使用 arrayxml             四次实验报告         四篇阶段性文档         2000行代码         小农夫     布局xml     android:layout_width="match_parent"     android:layout_height="match_parent"     android:o 阅读详情

相关推荐

AndroidSpinner用法

一、Spinner的两种展示样式 下拉列表的展示方式有两种,一种是在当前下拉框的正下方展示列表,此时把spinnerMode属性设置为dropdown;另一种是在页面中部以对话框形式展示列表,此时把SpinnerMode属性设置为dialog。 二、Spinner相关方法 setPrompt:设置标题文字。 setAdapter:设置下拉列表的适配器。 setSelection:设置当前选中哪项。注意该方法要在setAdapter方法之后调用。 setOnItemSe

水月洞天 2万+

android spinner控件详解,Spinner样式大全_spinner用法详解

Spinner其实是一个列表选择框,不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。Spinner与Gallery都继承了AbsSpinner,AbsSpinner继承了AdapterView,因此他也表现出AdapterView的特征:只要为AdapterView提供Adapter即可。android:entries属性并不是Spinner定义的,而不是Ab...

weixin_34208146的博客 8662

spinner基础实例1绑定数组数据至spinner

第一种方式 <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"android:lay...

589

Android Spinner

Android 中下拉列表选择,提供了控件Spinner,现做一个小总结,以备使用。从1.Spinner属性2.设置Spinner的adapter说起。1.Spinner属性首先写一个简单的Spinneractivity_main.xml<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schem

dachaoxuexi的博客 4335

Spinner的NullPointerException问题-->未解决(初步怀疑是Spinner本身的问题)

java.lang.NullPointerException //      at android.widget.Spinner$DialogPopup.dismiss(Spinner.java:907) //      at android.widget.Spinner$DialogPopup.onClick(Spinner.java:945) //      at com.android

nowlf_android的专栏 1789

AndroidSpinner控件及级联Spinner的使用

下拉框是Android中一个较为常用的控件,用于从下拉选项中选出一个选项,这种方式可以很好的节省控件,如中国32个省市和地区,如果挨个放在屏幕里不美观且占位置。 它有如下属性 entries:设置显示数组数据 dropDownWidth:设置下拉列表的宽度 dropDownSelector:设置Spinner组件的下拉框被选择的动态效果 popupBackground:下拉框的背景

QuietShake的博客 2147

JavaFX 控件 Spinner

Spinner 样式 //最小, 最大, 默认值, 步长 Spinner<Integer> spinner1 = new Spinner<>(0, 10, 5, 2); Spinner<Double> spinner2 = new Spinner<>(0.0, 10.0, 5, 0.5); spinner1.setEditable(true); ObservableList<String> items = FXCollections.obs

MAIMIHO的博客 1946

android spinner文字居中,Spinner 的那些坑

首先说下项目要求:制作一个设备列表,gridview 形式,数据源是JSONARRAY,效果图差不多如下所示,主要功能就是展示设备,当点击一个设备的时候,弹出下拉列表,显示设备的所有型号。设备列表看到这个效果图的时候,首先想到的是用Spinner吧,如果你想到的是PopupWindow,那证明你能力比我强,可以return了,想继续了解一下spinner那些坑的,可以continue~下面就是简单...

weixin_39689506的博客 796

android spinner动态添加数据,Android 怎么动态的设置Spinner联动

满意答案caoyan50312016.01.27采纳率:46%等级:8已帮助:410人1.确定需要的数据放到res/values/arrays.xml文件(定义数组)-省份-河北省山西省北京市-城市-承德市邯郸市廊坊市-城市-海淀区朝阳区崇文区-城市-大同市临汾市2.编写xml界面res/values/main.xml文件(编写界面)android:orientation="vertica...

weixin_42528780的博客 2920

Spinner使用解析

Spinner使用解析之自我理解(供参考) 对于Spinner网上虽然有很多,但是还是想自己写一篇属于自己的博文,下边是我对Spinner的使用理解; Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值,显示样式如下:

Wshiduo的博客 1234

AndroidSpinner

<br />下拉列表 Spinner。<br /> <br />Spinner的使用,可以极大提高用户的体验性。当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来。供用户选择。<br /> <br />Demo如下,可以留作参考。<br />1:新建一个SpinnerDemo工程。<br />2:工程的Layout.xml文件如下:声明一个TextView控件和一个Spinner控件<br /> <?xml version="1.0" encoding="utf-8"?> <LinearLay

dadahacker的笔记 8741

安卓界面控件之Spinner

安卓界面控件之SpinnerSpinner的定义:如果为Spinner中添加选择项目 Spinner的定义: 1.Spinner是一种能够从多个选项中选一个选项的控件,使用浮动菜单为用户提供选择 2.类似于桌面程序的组合框(ComboBox) Spinner位于工具栏Palette栏中的Containers中的第一个(意味着Spinner是一种容器,存放选择的容器) 如...

weixin_44405478的博客 1186

创建Spinner的步骤

1.在布局文件中声明Spinner控件: <Spinner android:id="@+id/Myspinner" android:layout_width="fill_parent" android:layout_height="wrap_content"/> 2.在string.xml中声明一个数组:(这种方式数据是写死了的,不灵活) 金星

jcy472578的专栏 2378

Android ListView中加入Spinner的一些问题

前段时间入手了一台Android系统的G2,入手的原因很简单了,想研究Android方面的应用开发。断断续续的看了一些资料,了解了一些基本的知识,这几天就准备做一个将Excel表格的通讯录导入到手机里。做了有几天了,前面断断续续的有一些小问题,都是些初学者常有的,今天做了一个ListView中加入Spinner,花了很多时间.第一次,SimpleAdapter,通过新建一个spinner,然后

lucom11的专栏 5278

Widgets之Spinner

Spinner相当于下拉列表,在Android开发文档中的关于Spinner的介绍: android.widget 类 Spinner java.lang.Object android.view.View android.view.ViewGroup android.widget.AdapterViewSpinnerAdapter>

zhaoxiaoyao1987的专栏 2817

android spinner文字居中,让Spinner中的文字居中

如果套用simple_spinner_item或是simple_spinner_dropdown_item,然后直接在Spinner中用android:gravity="center"是无法让Spinner中的文字居中的。这是因为Spinner中的文字其实是套在TextView中的(参考:http://www.douban.com/note/483280526/?type=like#sep)。一开...

weixin_35437233的博客 2068

android spinner保存对象,新人,在listview中加载的spinnerspinner内容如何保存

新人,在listview中加载的spinnerspinner内容怎么保存?目前页面显示没有问题,当前页面选择spinner也可以正常显示不过只要滑动页面就会让spinner的数据重置,这个问题需要怎么来处理?希望能给出相应的处理方法代码或者思考方向,感谢!------解决方案--------------------publicclassAssessLVAdapterextendsBase...

weixin_28956207的博客 344

Spinner的详解

在看完mars的Spinner之后觉得很一般,因为Spinner的用法精髓并没有展示出来 后来看了Android讲义 觉得讲得不错 一、静态配置 //layout main.xml:        android:id="@+id/test"        android:layout_width="fill_width"        android:layout_height

起点 3166
上一篇: DrawerLayout初步了解
下一篇: SQLite使用基础
Yo_Hack
博客等级 码龄12年 2粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值