Android编程开发之Spinner组件用法
作者:java2009cgh 发布时间:2022-09-02 17:55:26
标签:Android,Spinner
本文实例讲述了Android编程开发之Spinner组件用法。分享给大家供大家参考,具体如下:
Spinner组件组要用显示一个下拉列表,在使用中需要用到适配器Adapter,下面是一个该组件的使用示例
首先是布局文件main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Spinner android:id="@+id/spinner1" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Spinner android:id="@+id/spinner2" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginTop="20dp"/>
</LinearLayout>
由于用到simpAdapter所以要写子项Item的布局如下 item.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/ivLogo" android:layout_width="60dp"
android:layout_height="60dp" android:src="@drawable/icon"
android:paddingLeft="10dp" />
<TextView android:id="@+id/tvApplicationName" android:textColor="#000"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:textSize="16dp" android:gravity="center_vertical"
android:paddingLeft="10dp" />
</LinearLayout>
下面是代码:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
public class Main extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取对象
Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
String[] applicationNames = new String[]
{ "多功能日历", "eoeMarket客户端", "耐玩的重力消砖块", "白社会", "程序终结者" };
ArrayAdapter<String> aaAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, applicationNames);
// 将如下代码可以使列表项带RadioButton组件
// aaAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(aaAdapter);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
final List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
Map<String, Object> item1 = new HashMap<String, Object>();
item1.put("ivLogo", R.drawable.calendar);
item1.put("tvApplicationName", "多功能日历");
Map<String, Object> item2 = new HashMap<String, Object>();
item2.put("ivLogo", R.drawable.eoemarket);
item2.put("tvApplicationName", "eoeMarket客户端");
items.add(item1);
items.add(item2);
SimpleAdapter simpleAdapter = new SimpleAdapter(this, items,
R.layout.item, new String[]
{ "ivLogo", "tvApplicationName" }, new int[]
{ R.id.ivLogo, R.id.tvApplicationName });
spinner2.setAdapter(simpleAdapter);
//为Spinner2加上监听事件
spinner2.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
new AlertDialog.Builder(view.getContext()).setTitle(
items.get(position).get("tvApplicationName")
.toString()).setIcon(
Integer.parseInt(items.get(position).get("ivLogo")
.toString())).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
}
});
}
}
希望本文所述对大家Android程序设计有所帮助。


猜你喜欢
- “Java is still not dead—and people are starting to figure that out.”本教
- 最近这段时间一直在看Android,利用Listview去实现点赞功能,下面给大家介绍下基本思路。基本思路:进入界面–》获取数据–》 在Li
- (1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对
- 需要记录日志的地方包括:进入方法的时候,传参的时候,统计执行时间,方法返回参数的时候,退出语句块的时候,出现异常的时候,等等。先来体验不使用
- MD5加密简介哈希算法又称散列算法,是将任何数据转换成固定长度的算法的统称。 从本质上讲,MD5也是一种哈希算法,其输出是生成12
- Java以命令模式设计模式1、简单介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为
- 嵌套查询使用Fluent Mybatis, 不用手写一行xml文件或者Mapper文件,在dao类中即可使用java api构造中比较复杂的
- 该系统分为前台和后台,前台可以自主注册,后台管理员角色,除基础脚手架外,实现的功能有:后台管理员功能有:商品分类管理、商品管理、套餐管理、新
- 需求有一个固定URL的文件,服务器端程序会定期的更新这个文件,现在需要写一个工具来监控这个文件的变化。解决办法最初我想到的是把这个文件下载下
- 摘要在J2SE 1.5的java.util.concurrent包(下称j.u.c包)中,大部分的同步器(例如锁,屏障等等)都是基于Abst
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:package com.example.yanlei.yl4;import androi
- 写了一个可以扫描附近蓝牙设备的小Demo,可以查看蓝牙设备的设备名和Mac地址代码量不多,很容易看懂/** * 作者:叶应是叶 * 时间:2
- 引言本文我们来分析NameServer相关代码,在正式分析源码前,我们先来回忆下NameServer的功能:NameServer是一个非常简
- 一、单例模式设计模式:软件设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易
- 详解Java中HashSet和TreeSet的区别1. HashSetHashSet有以下特点:不能保证元素的排列顺序,顺序有可能发生变化不
- 本文实例为大家分享了shader实现基于世界坐标的贴图置换效果。效果如下:设置面板如下:可在面板上设置切换方向,与切换对象,及其切换速度。s
- 一、简介我们在线程编程的时候往往会涉及到线程的通信,通过信号的接受来进行线程是否阻塞的操作。AutoResetEvent 允许线程通过发信号
- 1.阻塞I/O模型阻塞IO模型是常见的IO模型,在读写数据时客户端会发生阻塞。阻塞IO模型的工作流程为:1.1在用户线程发出IO请求之后,内
- 在你的jar文件当前目录中建立一个bat文件:内容是:注意文件名要对应@echo offSTART "commandServer&
- 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修