Android基本控件Spinner的简单使用【转】

摘要:
仔细研究后,做一个简短的总结:上面两个图描述了Spinner显示数据的过程。Spinner负责显示,Adapter负责向Spinner传输源数据,Model存储源数据,通常为List<?资源:表示列表项的布局资源id。默认值为android.R.layout.simple_spinner_item,logmethod。˃AdapterView:触发当前事件Viewview的Spinner对象表示当前替换项中的itemiti:表示当前选定项longl的下表:表示当前所选项的id*/@Overridepublicvoid onItemSelected(AdapterView˂?

Android基本控件Spinner的简单使用

感谢大佬:https://blog.csdn.net/bingocoder/article/details/80469939

学习过了Textview,EditText,ImageView,Button 等简单View控件后,刚一看Spinner感觉有些复杂。显示数据还需要用Adapter。。。认真学习后做简单梳理 :
在这里插入图片描述
在这里插入图片描述
上面两个图介绍了Spinner显示数据的过程。是MVC模式。Spinner负责显示,Adapter负责将源数据传送到Spinner,Model存放源数据,通常是List<?>集合或者数组。

看实际使用的例子

1.准备需要加载展示的数据源。我定义在了valuesStrings.xml中,代码如下:

<resources>
    <string name="app_name">LoginDemo</string>
    <string-array name="log_method">
        <item>QQ登陆</item>
        <item>微信登陆</item>
        <item>手机号登陆</item>
        <item>微博登陆</item>
    </string-array>
</resources>

2.初始化适配器,将数据源加载到适配器中。new 一个适配器是有三个参数,了解一下含义:

context: 上下文对象,当前类.this。resource:表示列表item的布局资源id 默认android.R.layout.simple_spinner_item,logmethod。object:要适配的数据资源。

3.将适配器加载到控件中:

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.TextView;
import android.widget.Toast;
 
public class LoginActivity extends Activity {
    private Spinner mSp1;
    private String [] logmethod;
    private ArrayAdapter<String> adapter;
    private TextView mTv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        mSp1 = (Spinner)this.findViewById(R.id.sp);
        mTv1 = (TextView) this.findViewById(R.id.tv);
        //准备要加载的字符串数组资源
        logmethod = getResources().getStringArray(R.array.log_method);
        /*
        * 初始化适配器时各参数
        * context: 上下文对象,当前类.this
        * resource:表示列表item的布局资源id 默认android.R.layout.simple_spinner_item,logmethod
        * object:要适配的数据资源
        * */
        adapter = new ArrayAdapter<String>(LoginActivity.this,android.R.layout.simple_spinner_item,logmethod);
        mSp1.setAdapter(adapter);
        mSp1.setOnItemSelectedListener(new OnItemSelectedListener() {
            /*
            参数详解:
            AdapterView<?> adapterView:触发当前事件的Spinner对象
            View view表示当前备选中的item
            int i:表示当前被选中item的下表
            long l:表示当前被选中item的id
             */
 
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                String s1 = logmethod[position]; //在数据源中获取
                String s2 = adapter.getItem(position); //在适配器中获取
                Toast.makeText(LoginActivity.this,"s1 = "+s1,Toast.LENGTH_LONG);
                mTv1.setText(s1);
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }
}

Spinner的定义:

<Spinner
            android:id="@+id/sp"
            android:layout_marginLeft="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ></Spinner>

程序运行效果:
在这里插入图片描述
在这里插入图片描述

免责声明:文章转载自《Android基本控件Spinner的简单使用【转】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL监控、性能分析——工具篇C#中char[]与string之间的转换;byte[]与string之间的转化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于android中EditText边框的问题 下划线

方法1   将edittext的style设置成?android:attr/textViewStyle 取消掉默认的样式,在设置background为@null 接下来就是一个空空的edittext了, 在两个edittext中间加一个view,设置background为灰色,宽度match_parent,高度2dip看看。 如果可以了就采纳吧。不行的话...

Autojs

我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python、React 也玩儿的 6 的斜杠开发者。 Spring Cloud 系列文章已经完成,可以到 我的github 上查看系列完整内容。也可以在公众号内回复「pdf」获取我精心制作的 pdf 版完整教程。 一个神奇的 APP 这个软件叫做 Au...

安卓消息推送解决方案

一、推送工具使用 我们在做安卓开发的时候,通常需要一些消息推送功能,我个人平时用的是极光推送,极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度、提高应用的留存率。极光推送客户端支持 Android, iOS 两个平台。 使用的时候我们可以先去官网看开发文档,我是...

&amp;lt;Android基础&amp;gt;(一)

第一章Android 2003年10月,Andy Rubin等人创办了Android公司。2005年8月谷歌收购。 1.1 Android全貌 1.1.1 Android系统架构 1.Linux内核层:为Android设备的各种硬件提供底层驱动。如:显示驱动,音频驱动,蓝牙驱动,WiFi驱动,电源管理。 2.系统运行库层:c/c++库为Android层提供...

Webview 与h5的交互

步骤:H5代码   <html>   <head>   <meta charset="UTF-8">   <title>交互Demo</title>   <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,wid...

Android ---------- TabLayout 实战 (二) 仿京东商品详情页

1.效果图 2.原理:TabLayout提供了一个水平的布局用来展示 Tabs 作为一级标签导航;用横向布局的recycleview作为第二级标签导航。 3.添加依赖:compile'com.android.support:design:27.+ ‘ 4.布局文件: (1)主容器布局 <android.support.design.widget.T...