今天开始编辑我的第一篇博客。

---------------------------------------------------------------------------------------------

最近在找安卓开发的实习,可是面试N家公司,迟迟没有合适的机会。索性就自己看着视频教学来学点东西呗。

Spinner

是一个下拉列表,往安卓界面中拖拽一个Spinner控件,在属性中设置android:entries=“@array/spinner_data”

其中spinner_data为在string中设置的数组。数组中由固定写好的值。此时便可在界面设置好下拉列表。

<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="17dp"
android:entries="@array/spinner_data"/>

当然为了用户体验好,可以设置 android:spinnerMode="dialog"属性,可以使下拉列表有弹出框。

适配器:

适配器主要负责从数据源中抓取数据,传向各个UI组件。主要的适配器adapter由ArrayAdapter和BaseAdapter。 即适配器负责从某个数据源比如数组中得到数据传向Spinner,显示在界面上。

首先定义数据源

private String[] ss=new String[]{
"猫咪",
"老虎",
"狮子", };

数据源2

private List<String> list=new ArrayList<String>();
list.add("百度");
list.add("腾讯");
list.add("阿里巴巴");

其次定义一个类Myadapter继承与抽象类BaseAdapter,抽象方法有四个。

private class Myadapter extends BaseAdapter{

	@Override
public int getCount</span>() {
// TODO Auto-generated method stub
return ss.length;
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getView</span>(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView textView=new TextView(MainActivity.this);
textView.setText(ss[position]); return textView;
}

然后再主函数中

Spinner spinner=(Spinner) findViewById(R.id.spinner1);
BaseAdapter adapter=new Myadapter();
spinner.setAdapter(adapter);

先找到Spinner控件,并且实例化new一个adapter。通过adapter适配器来抓取数据源ss中的数据。

BaseAdapter适配器最重要的方法是getcount()以及getview()方法。前者返回数据源的长度,后者进行一些操作。

当然可以使用更简单的ArrayAdaper适配器。

Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,ss);
spinner.setAdapter(adapter);

通过以上语句,可以直接定位在数组ss中。

欢迎添加QQ956283501,一起讨论交流。

Spinner与适配器模式总结的更多相关文章

  1. 第20讲- Spinner与适配器模式

    第20讲 Spinner与适配器模式 使用Spinner相当于从下拉列表中选择项目,Spinner是一个每次只能选择所有项的一个项的控件.它的项来自于与之相关联的适配器中.Spinner的重点问题就是 ...

  2. (转载) Android-Spinner的使用以及两种适配器

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 Android-Spinner的使用以及两种适配器 201 ...

  3. PHP设计模式(七)适配器模式(Adapter For PHP)

    适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 如下图(借图): // 设置书的接口 // 书接口 interface BookI ...

  4. 《JS设计模式笔记》 5,适配器模式

    //适配器模式的作用就像一个转接口. jQuery("#"+id); $id=function (id) { return jQuery("#"+id)[0]; ...

  5. 设计模式(七): 通过转接头来观察"适配器模式"(Adapter Pattern)

    在前面一篇博客中介绍了“命令模式”(Command Pattern),今天博客的主题是“适配器模式”(Adapter Pattern).适配器模式用处还是比较多的,如果你对“适配器模式”理解呢,那么自 ...

  6. 设计模式(七)适配器模式(Adapter Pattern)

    一.引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象.那么如果将“将现存的对象”在新的环境中进行调用 ...

  7. PHP 适配器模式

    适配器模式(Adapter)模式:将一个类的接口,转换成客户期望的另一个类的接口.适配器让原本接口不兼容的类可以合作无间.     [适配器模式中主要角色]目标(Target)角色:定义客户端使用的与 ...

  8. 每天一个设计模式-3 适配器模式(Adapteer)

    每天一个设计模式-3 适配器模式(Adapteer) 1.现实中的情况 旧式电脑的硬盘是串口的,直接与硬盘连接,新硬盘是并口的,显然新硬盘不能直接连在电脑上,于是就有了转接线.好了,今天的学习主题出来 ...

  9. 设计模式--适配器模式Adapter(结构型)

    一.适配器模式 适配器模式的主要作用是在新接口和老接口之间进行适配.将一个类的接口转换成客户端期望的另外一个接口.其实适配器模式有点无赖之举,在前期设计的时候,我们就不应该考虑适配器模式,而应该通过重 ...

随机推荐

  1. 避免关注底层硬件,Nvidia将机器学习与GPU绑定

    Nvidia释放的一组cuDNN的库,有效的实现了其与多种深度学习框架的整合.基于cuDNN,加速了代码的运行,同时让研究员避免去关心底层硬件性能. 关键字: 编程语言语音识别Nvidia 原文链接: ...

  2. 三维点集拟合:平面拟合、RANSAC、ICP算法

    ACM算法分类:http://www.kuqin.com/algorithm/20080229/4071.html 一: 拟合一个平面:使用SVD分解,代码里面去找吧 空间平面方程的一般表达式为: A ...

  3. 接口测试及Postman工具

    首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口.系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写 ...

  4. JS 写<ul><li>

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 取/etc/password文件最后一个单词的最后一个字符

    三种方法都可以 [root@localhost ~]# sed -n "1,5 s#.*\(.\)#\1#p" /etc/passwd [root@localhost ~]# se ...

  6. bzoj4282 慎二的随机数列 树状数组求LIS + 构造

    首先,我们不难发现N个位置都选一定不会比少选任意几个差,所以我们就先设定我们将这N个修改机会都用上, 那么如果点 i">ii 前有sumv">sumvsumv个可修改点 ...

  7. js和css引入文件消除缓存

    ?version=<?php echo filemtime('引用路径'); ?>

  8. SQL SEVER 递归查询

    with ts as ( --首先要查询出最原始父级的信息 union all --全连接 select a.fitemclassid,a.fitemid, a.fnumber,a.Fparentid ...

  9. TensorFlow技术解析与实战学习笔记(13)------Mnist识别和卷积神经网络AlexNet

    一.AlexNet:共8层:5个卷积层(卷积+池化).3个全连接层,输出到softmax层,产生分类. 论文中lrn层推荐的参数:depth_radius = 4,bias = 1.0 , alpha ...

  10. django rest-farme-work 的使用(1)

    Django REST框架是一个用于构建Web API的强大且灵活的工具包 您可能想要使用REST框架的一些原因: 可浏览性 身份认证 支持ORM和非ORM的序列化 良好的文档支持 安装初步 pip ...