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

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

最近在找安卓开发的实习,可是面试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. Visual Studio 编辑代码量大的文件时分屏技巧

  2. [Intermediate Algorithm] - Sum All Primes

    题目 求小于等于给定数值的质数之和. 只有 1 和它本身两个约数的数叫质数.例如,2 是质数,因为它只能被 1 和 2 整除.1 不是质数,因为它只能被自身整除. 给定的数不一定是质数. 提示 For ...

  3. BZOJ 5508: [Tjoi2019]甲苯先生的字符串 矩阵乘法_思维

    求 $f[i][j]=∑f[i−1][k]$,$'a'<=k<='z'$ . 用矩阵乘法转移一波即可. 竟然独自想出来了QAQ Code: #include <bits/stdc++ ...

  4. Echarts堆积柱状图排序问题

    Echarts堆积柱状图排序是按照堆积柱状图的柱子高度进行从大到小(或者从小到大)进行排序,方便查阅各坐标情况.以下是我自己研发的方法,有不对的地方敬请谅解,随时欢迎指教. 排序后效果如下图: (1) ...

  5. vue-cli 中eslint代码检查之过滤指定文件

    在需要过滤的文件头部末尾分别添加:/* eslint-disable */,/* eslint-disable no-new */

  6. 51nod1072 - 威佐夫游戏【威佐夫博弈】

    有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取.拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出2堆石子的数量, ...

  7. nyoj314-斐波那契数列四吧

    斐波那契数列四吧 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 斐波那契数列为:0,1,1,2,3,5,8,13....,常规递推公式为f(n)=f(n-1)+f(n- ...

  8. JAVA 上传图片功能

    前后端实现上传图片功能(JAVA代码) 1.前端大概 请求头必须为AJAX请求头: 'X-Requested-With': 'XMLHttpRequest' 一般是指网页中存在的Content-Typ ...

  9. NOIP2018提高组省一冲奖班模测训练(五)

    NOIP2018提高组省一冲奖班模测训练(五) http://www.51nod.com/Contest/ContestDescription.html#!#contestId=79 今天有点浪…… ...

  10. Dubbo&Zookeeper运行原理

    Dubbo是一个分布式服务框架,Dubbo的架构如图所示: 节点角色说明: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发 ...