android studio 菜鸟实战项目 之 spnner实现

1.简单实现效果图:

activity_main.xml文件:

<TextView    android:id="@+id/text"    android:layout_width="wrap_content"    android:layout_height="wrap_content"     /><Spinner    android:id="@+id/spinner"    android:layout_width="wrap_content"    android:layout_height="wrap_content"></Spinner>

MainActivity.java文件:
public class MainActivity extends AppCompatActivity  {    private TextView textView;    private Spinner spinner;    private List<String> list;    private ArrayAdapter<String>adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //实例化        textView=(TextView)findViewById(R.id.text);        spinner=(Spinner)findViewById(R.id.spinner);        textView.setText("您选择的城市北京");        //设置数据源        list=new ArrayList<String>();        list.add("北京");        list.add("上海");        list.add("广州");        list.add("深圳");        //新建arrayAdapter,android.R.layout.simple_spinner_item是调用android studio中默认的样式        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);        //adapter设置一个下拉列表        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        //spinner加载适配器        spinner.setAdapter(adapter);        //实现监听事件        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                String cityName=adapter.getItem(position);                //String cityName=list.get(position);                textView.setText("您选择的城市是"+cityName);            }            @Override            public void onNothingSelected(AdapterView<?> parent) {

            }        });    }}

2.自定义实现:添加图标

mainActivity.xml文件:

<TextView    android:textSize="25sp"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/text" /><Spinner    android:layout_marginTop="10dp"    android:id="@+id/spinner"    android:layout_width="match_parent"    android:layout_height="wrap_content"></Spinner>

新添加的item.xml文件:
<ImageView    android:id="@+id/imge"    android:layout_width="wrap_content"    android:layout_height="wrap_content" /><TextView    android:layout_marginTop="5dp"    android:layout_marginLeft="30dp"    android:id="@+id/city"    android:textSize="25sp"    android:textColor="#ff0000"    android:layout_width="wrap_content"    android:layout_height="wrap_content" />

mainActivity.java文件:
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener{    private TextView textView;    private Spinner spinner;    private List<Map<String,Object>> dataList;    private SimpleAdapter adapter;    private String[] cityName={"上海","广州","北京","深圳","杭州","南京"};    private int[] icon={R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //实例化        textView=(TextView)findViewById(R.id.text);        textView.setText("您选择的城市是上海");        spinner=(Spinner)findViewById(R.id.spinner);        //准备数据源        dataList=new ArrayList<>();        //新建适配器,特别要注意对from和to两个变量的定义        adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"image","city"},new int[]{R.id.imge,R.id.city});        //加载适配器        spinner.setAdapter(adapter);        //实现监听事件        spinner.setOnItemSelectedListener(this);    }    private List<Map<String,Object>> getData(){        for(int i=0;i<cityName.length;i++){            Map<String,Object>map=new HashMap<>();            map.put("image",icon[i]);            map.put("city",cityName[i]);            dataList.add(map);        }        return dataList;    }

    @Override    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {        String city= dataList.get(position).toString();        textView.setText("您选择的城市是"+city);        Toast.makeText(this,"您选择的城市是"+city,Toast.LENGTH_SHORT).show();

    }    @Override    public void onNothingSelected(AdapterView<?> parent) {

    }}
				
时间: 2024-10-10 13:24:40

android studio 菜鸟实战项目 之 spnner实现的相关文章

android studio 菜鸟实战项目 之 点击事件以及动态添加

原始界面:               登陆失败:             登陆成功:              动态添加控件: 布局如下:(特别声明最后又一个空linearlayout,这是为了后面的动态添加事件) <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

《Android Studio开发实战 从零基础到App上线》资源下载和内容勘误

http://blog.csdn.net/aqi00/article/details/72907534 http://blog.csdn.net/aqi00/article/details/73065392 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 资源下载 下面是<Android Studio开发实战 从零基础到App上线>一书用到的工具和代码资源:1.本书使用的Android Studio版本为2.2.3,因为Android官网现在不提供该版本的下载,所以博主

在Android Studio中创建项目和模拟器

北京电子科技学院 实      验      报      告 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________  指导老师:娄嘉鹏   实验日期 :2015.11.1 实验名称:           在Android Studio中创建项目和模拟器 实验内容:       1.在Android Studio中创建项目 2.创建并启动Android模拟器 一.实验简介 熟悉Android的开发环境.一些基本的操作技巧以及调试技

导入开源库到基于Android Studio构建的项目中

前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于Android Studio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧.主要介绍一下常见的一些导包的场景. 前言 --project //项目目录 | build.gradle //项目的gradle配置文件 | settings.gradle

Android 升级到android studio 2.2项目死活run不起来

背景:升级到Android studio 2.2项目死活运行不起来 现象如下: run with --stacktrace --debug等等抛出的bug简直无法忍视 解决办法:把compileSdkVersion 改为23成功run起来了

Android studio多个项目之间怎么实现快速切换?

Android studio多个项目之间怎么实现快速切换?Android studio中打开的项目太多了,想切换到一个项目很麻烦,怎么才能快速切换到另一个项目中呢?请看下文详细介绍 在对Android studio中进行对项目中的开发Android上的代码,那么一个当中进行对项目上的开发,那么在就会打开多个项目对项目中进行对其的开发,当当对一个项目上的开发,根据自己的要求的话,那么切换到另一个项目的开发. 1.在当前的电脑的界面中,进行打开了两个的Android studio窗口. 2.在当前的

Android Studio导入Eclipse项目和一些常见的问题

Android Studio版本 Eclipse项目工程:一个主工程,一个Emojicon依赖库. 有两种方式导入Eclipse工程: 1.兼容Eclipse 2.全新的Android Gradle Project Google推荐用全新的方式,所以此处不介绍兼容模式导入. 请先关闭Android Studio当前的Project,否则你看不到Import Project. 选择“Import project(Eclipse ADT, Gradle, etc.)”,定位到你所需要导入的工程的主目

Android Studio创建库项目及引用

Android Studio创建库项目其实创建的是在主项目下创建Module模块,这个Module模块创建的时候选择库项目模式. 为什么要这样处理呢?因为在Android Studio中一个WorkSpace工作空间就是一个Android主项目.主项目其实也就是这个工作空间的一个Module模块,只不过这个模块是一个主模块.如果要想创建库项目,显而易见也应该是一个module模块项目,设置成Library就可以了. 然后自动生成的build.gradle文件里面会有一行标示 apply plug

Android实验一(在Android Studio中创建项目和模拟器)

北京电子科技学院(BESTI) 实     验    报     告 课程:移动平台开发         班级:1592 姓名:苏泽楠 学号:20159207 成绩:             指导教师:娄嘉鹏       实验日期:2015.10.31 实验密级:         预习程度:             实验时间:15:30-16:30 仪器组次:          必修/选修:选修        实验序号: 实验名称:在Android Studio中创建项目和模拟器 实验仪器: 名