Spinner学习

【Android】UI组件之Spinner与适配器模式 Android中经常用到的基础数据适配器,继承自Adapter,它的主要用途是将一组数据传到ListView、Spinner、Gallery及GridView等UI显示组件。将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是。adapter在Android应用程序中起着非常重要的作用,是数据源和UI组件之间的桥梁。相当于htm表单中的select下拉列表。... 阅读详情

 今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现)

(一):使用ArrayAdapter进行适配数据:

   ①:首先定义一个布局文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
< span style = "font-size:16px;" ><? xml version = "1.0" encoding = "utf-8" ?>
< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
     android:layout_width = "fill_parent"
     android:layout_height = "fill_parent"
     android:orientation = "vertical" >
 
     < Spinner
         android:id = "@+id/spinner1"
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
       />
</ LinearLayout ></ span >
  【注意:】上面的Spinner有两个属性1:prompt是初始的时候,Spinner显示的数据,是一个引用类型   2:entries是直接在xml布局文件中绑定数据源(可以不设置,即可以在Activity中动态绑定) 

         ②:建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:

?
1
2
3
4
5
6
7
8
9
< span style = "font-size:16px;" ><? xml version = "1.0" encoding = "utf-8" ?>
< resources >
     < string-array name = "spinnername" >
         < item >北京</ item >
         < item >上海 </ item >
         < item >广州</ item >
         < item >深圳</ item >
     </ string-array >
</ resources ></ span >

  ③:接着在Activity中加入如下的代码(使用了系统定义的下拉列表的布局文件,当然也可以自定义)

?
1
2
3
4
5
6
7
8
        // 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立数据源
String[] mItems = getResources().getStringArray(R.array.spinnername);
// 建立Adapter并且绑定数据源
ArrayAdapter<String> _Adapter= new ArrayAdapter<String>( this ,android.R.layout.simple_spinner_item, mItems);
//绑定 Adapter到控件
mSpinner.setAdapter(_Adapter);

以上代码初步完成,看下运行效果:

Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .

    下面是关于Spinner的点击事件(效果图如上图):

?
1
2
3
4
5
6
7
8
9
10
11
12
mSpinner.setOnItemSelectedListener( new OnItemSelectedListener() {
     @Override
     public void onItemSelected(AdapterView<?> parent, View view,
             int position,  long id) {
         String str=parent.getItemAtPosition(position).toString();
         Toast.makeText(SpinnerActivity. this ,  "你点击的是:" +str,  2000 ).show();
     }
     @Override
     public void onNothingSelected(AdapterView<?> parent) {
         // TODO Auto-generated method stub
     }
});

       (二)使用自定义的Adapter(重点)

           ①:定义每一个Item的布局文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<? xml version = "1.0" encoding = "utf-8" ?>
< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
     android:layout_width = "match_parent"
     android:layout_height = "match_parent"
     android:orientation = "horizontal" >
 
     < TextView
         android:id = "@+id/textView1"
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:drawableLeft = "@drawable/ic_launcher"
         android:paddingRight = "8dip"
         android:paddingTop = "8dip"
         android:text = "TextView"
         android:textSize = "25sp" />
 
     < TextView
         android:id = "@+id/textView2"
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:paddingLeft = "8dip"
         android:paddingTop = "8dip"
         android:text = "TextView"
         android:textSize = "25sp" />
 
</ LinearLayout >
        ②:建立Person类:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.jiangqq.csdn;
public class Person {
     private String personName;
     private String personAddress;
     public Person(String personName, String personAddress) {
         super ();
         this .personName = personName;
         this .personAddress = personAddress;
     }
     public String getPersonName() {
         return personName;
     }
     public void setPersonName(String personName) {
         this .personName = personName;
     }
     public String getPersonAddress() {
         return personAddress;
     }
     public void setPersonAddress(String personAddress) {
         this .personAddress = personAddress;
     }
 
}
     ③:创建MyAdapter继承与BaseAdapter,进行适配:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.jiangqq.csdn;
 
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
 
/**
  * 自定义适配器类
  * @author jiangqq  <a href=http://blog.youkuaiyun.com/jiangqq781931404></a>
  *
  */
public class MyAdapter  extends BaseAdapter {
     private List<Person> mList;
     private Context mContext;
 
     public MyAdapter(Context pContext, List<Person> pList) {
         this .mContext = pContext;
         this .mList = pList;
     }
 
     @Override
     public int getCount() {
         return mList.size();
     }
 
     @Override
     public Object getItem( int position) {
         return mList.get(position);
     }
 
     @Override
     public long getItemId( int position) {
         return position;
     }
     /**
      * 下面是重要代码
      */
     @Override
     public View getView( int position, View convertView, ViewGroup parent) {
         LayoutInflater _LayoutInflater=LayoutInflater.from(mContext);
         convertView=_LayoutInflater.inflate(R.layout.item,  null );
         if (convertView!= null )
         {
             TextView _TextView1=(TextView)convertView.findViewById(R.id.textView1);
             TextView _TextView2=(TextView)convertView.findViewById(R.id.textView2);
             _TextView1.setText(mList.get(position).getPersonName());
             _TextView2.setText(mList.get(position).getPersonAddress());
         }
         return convertView;
     }
}
④:在Activity中加入如下代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
        // 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立数据源
List<Person>  persons= new ArrayList<Person>();
persons.add( new Person( "张三" ,  "上海 " ));
persons.add( new Person( "李四" ,  "上海 " ));
persons.add( new Person( "王五" ,  "北京" ));
persons.add( new Person( "赵六" ,  "广州 " ));
//  建立Adapter绑定数据源
MyAdapter _MyAdapter= new MyAdapter( this , persons);
//绑定Adapter
mSpinner.setAdapter(_MyAdapter);
运行效果如下截图:

  Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .

      监听事件和第一种方法相同:

android学习——spinner控件 1. 布局文件   mail.xml  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android 阅读详情

相关推荐

别慌!Oracle MOS登录页面大变样?5分钟搞定新旧账号登录全流程

本文详细解析Oracle MOS登录页面改版后的新旧账号登录流程,帮助用户快速适应账号体系变革。针对传统MOS账号和OCI账号的不同应用场景,提供5分钟内完成无缝切换的实用指南,包括登录步骤、书签设置和密码管理策略,助力数据库管理用户高效访问Oracle技术支持资源。

weixin_30275415的博客 519

【Android】-- 下拉列表Spinner、适配器Adapter

Android下拉列表spinner、适配器Adapter、简单适配器SimpleAdapter、基本适配器BaseAdapter

个人博客 4952

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 380

Spinner(下拉列表)的使用

下拉列表的使用

A125679880的博客 5734

ECC密码的加密和解密(附带代码实现)

ECC,全称Elliptic Curve Cryptography,是椭圆曲线密码学。这是一种公钥加密技术,其安全性基于椭圆曲线离散对数问题,被广泛应用于信息安全领域。ECC的主要优势在于,相较于RSA和DSA等其他传统的公钥密码体系,它能够在提供相同安全级别的情况下,使用更短的密钥,从而减少计算量和存储空间的需求。例如,一个256位的ECC密钥提供的安全性可以与3072位的RSA密钥或DSA密钥相媲美。ECC的主要应用领域包括SSL安全证书、安全电子邮件、移动设备安全、物联网设备安全等。

xixixi7777的博客 8273

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

Android——基本控件之下拉列表:Spinner(九)

Spinner组件功能介绍

毛栗子201105的博客 5773

Zynq7000双核裸机开发实战:如何安全实现共享内存与乒乓RAM设计

本文深入探讨了Zynq7000双核裸机开发中的共享内存与乒乓RAM设计,重点解析了核间通信的Cache一致性处理机制和硬件级实现方案。通过实战代码示例和性能优化技巧,帮助开发者解决双核运行中的访问冲突问题,提升嵌入式系统开发效率。

weixin_29191669的博客 376

Android Studio中Spinner控件的使用方法2-1

Spinner控件的作用是可以同时显示所有子项,用户可以对显示的子项进行选择,如图1所示。图1 Spinner控件。

hou09tian的博客 3216

ADS基础教程22 - 有限元电磁仿真(FEM)

一、引言二、FEM操作过程1.新建Layout1.新建Layout2.EM设置3.设置Frequency plan4.设置Output plan5.设置Options6.设置网格频率7.仿真结果三、总结介绍了在ADS中如何进行FEM仿真过程。END!}}END!

XZ_ZC的博客 2584

作为一名爬虫人如何实现千万级数据爬取?

爬虫门槛不高,高就高在往后余生的每一次实操都随时会让你崩溃!Bro

吴秋霖的博客 1万+

RadioGroup、RadioButton以及Spinner学习笔记

以下仅为我作为一只工科狗学习Android编程过程中的一些学习笔记,主要提炼出自己在敲代码过程中遇到的一些问题。 学习Android控件对于我这个新手来说还是很困难的,写在谷歌doc里面还是不太好查找,写在这里吧。 1.RadioGrop&RadioButton 1.1布局文件部分 先上xml代码 <LinearLayout xmlns:android="http://schemas.a

Harris的博客 735

手把手教你学simulink(57.3)--电励磁同步电动机场景示例:基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机

目录基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机项目实例1. 项目背景2. 系统架构2.1 电励磁同步电动机模型2.2 三相逆变器模型2.3 自适应控制器(Adaptive Controller)2.4 系统框图3. 模型设计3.1 创建Simulink模型3.2 自适应控制(Adaptive Control)设计3.3 仿真环境搭建4. 参数优化4.1 自动调优5. 实际应用案例5.1 工业驱动系统5.2 风力发电系统6. 结论需求分析电励磁同步电动机(Electr

MHD0815的博客 505

Spinner的学习

第一次学Spinner控件,想记录一些东西,我是参考http://blog.youkuaiyun.com/developer_jiangqq/article/details/7285623这篇文章进行学习的,只是想将自己理解的东西记录下来   想实现的功能:想看一下下拉菜单Spinner长什么样,就做了个实例   要做的事:(都比较简单) 1、在布局文件添加Spinner控件 2、为Spinner...

绿色落日的博客 540

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

学习Spinner使用方法

package com.example.spinner; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelected

柠檬绿@ 1105

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android学习笔记:Activity-Spinner

Android学习笔记:Activity-Spinner http://blog.youkuaiyun.com/chenjinyu_tang/article/details/6587953 Android 之 Spinner 键值对的绑定 http://blog.youkuaiyun.com/zhangmengxiong/article/details/6291706 中科院Java Eclipse视频教程第01

az44yao的专栏 630

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Spinner控件学习

自我认知: Spinner好像一个下拉列表框,有点像Java红的JComboBox. myspinner项目目录:运行结果如下:activity_main.xml代码<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c

常灿光的博客 728

Spinner控件的学习

main.xml   res/layout/main.xml file and insert the following: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     androi...

shikun520的专栏 108

Spinner下拉列表的学习心得

在android项目的过程中,使用到下拉列表控件,以前不是很熟悉,现在趁此机会好好学习,总结一下spinner在activity和fragment中的用法,供大家一块学习和自己日后的进步。 Spinner组件一共有两个,一个是本身的Spinner,一个是android.support.v7.widget.AppCompatSpinner,两者的区别在于v7内的Spinner是兼

sherry_unique的博客 1633

Android学习笔记之Spinner

Android学习笔记之Spinner

sdfsdfytre的博客 209

《Android开发从零开始》——37.Spinner和Auto_Complete控件学习

本节课的主要内容有: 1.讲解Spinner控件简单使用 2.讲解如何获取APK文件中的资源(仅供学习,请勿用于非法用途) 3.讲解Auto_Complete控件简单使用   课程下载地址:http://u.115.com/file/e6ubbymd 课件及源码下载地

若水 6182

Android学习之Spinner

spinner是一个下拉菜单,做选择时尤其有用。列出一组选项让用户从中挑选,方便了用户,简单做了个例子,如图:

beyond海阔天空 395

Spinner的深入学习

Spinner的深入学习 简介:   spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。Spinner是ViewGroup的间接子类,它和其他的Android控件一样,数据需要使用Adapter进行封装。   下面介绍一下Spinner的常用XML属性,Android也为其属性提供了相应的getter、setter方法...

sina:崔逸的博客 242

Android Spinner学习

在Android开发中,很多时候需要用到Spinner(类似Html中的下拉框)来展示数据,,比如,用户注册界面,用Spinner来展示省份是个不错的选择。 1、在布局文件中声明 Spinner <Spinner android:id="@+id/spinner1" android:layout_width="match_paren...

136
下一篇: Menu的三个实现方式
luck_InMyWorld
博客等级 码龄11年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值