下拉选择框 Spinner的用法。
代码如下:
package com.lixu.xialakuang; import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView; public class MainActivity extends Activity {
TextView tv2;
TextView tv3; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); final String[] start = this.getResources().getStringArray(R.array.start);
final String[] target = this.getResources().getStringArray(R.array.target); Spinner spinner1 = (Spinner) findViewById(R.id.sp1);
Spinner spinner2 = (Spinner) findViewById(R.id.sp2); tv2 = (TextView) findViewById(R.id.tv2);
tv3 = (TextView) findViewById(R.id.tv3); tv2.setTextSize(20);
tv3.setTextSize(20); MyAdapterr mMyAdapterr = new MyAdapterr(this, -1, target); MyAdapterr mMyAdapter = new MyAdapterr(this, -1, start); spinner1.setAdapter(mMyAdapter); spinner2.setAdapter(mMyAdapterr); spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
tv2.setText(target[arg2]);
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
spinner2.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
tv3.setText(start[arg2]);
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}); } private class MyAdapterr extends ArrayAdapter {
LayoutInflater flater;
private Context context;
private String[] target;
int[] image = { R.drawable.beijing, R.drawable.chengdu, R.drawable.guangzhou, R.drawable.hangzhou,
R.drawable.wuhan, R.drawable.xian, R.drawable.shenzhen }; @Override
public int getCount() { return target.length;
} public MyAdapterr(Context context, int resource, String[] target) {
super(context, resource, target);
this.context = context;
this.target = target;
this.image = image;
flater = LayoutInflater.from(context);
} // 设置最上面选中列表的view
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = flater.inflate(R.layout.list, null);
ImageView iv = (ImageView) convertView.findViewById(R.id.iv1);
iv.setImageResource(image[position]); TextView tv = (TextView) convertView.findViewById(R.id.tv1);
tv.setBackgroundColor(Color.RED); tv.setText(target[position]);
return convertView;
} // 设置下拉列表的 view 如果不写这个方法会报 Resources$NotFoundException: Resource ID
// #0xffffffff这个错误 @Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = flater.inflate(R.layout.list, null);
ImageView iv = (ImageView) convertView.findViewById(R.id.iv1);
iv.setImageResource(image[position]); TextView tv = (TextView) convertView.findViewById(R.id.tv1); tv.setBackgroundColor(Color.GREEN);
tv.setText(target[position]);
return convertView;
}
} private class MyAdapter extends ArrayAdapter { LayoutInflater flater;
private Context context;
private String[] start;
int[] image = { R.drawable.beijing, R.drawable.chengdu, R.drawable.guangzhou, R.drawable.hangzhou,
R.drawable.wuhan, R.drawable.xian, R.drawable.shenzhen }; @Override
public int getCount() { return start.length;
} public MyAdapter(Context context, int resource, String[] target) {
super(context, resource, target);
this.context = context;
this.start = start;
flater = LayoutInflater.from(context);
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = flater.inflate(R.layout.list, null); ImageView iv = (ImageView) convertView.findViewById(R.id.iv1);
iv.setImageResource(image[position]); TextView tv = (TextView) convertView.findViewById(R.id.tv1);
tv.setBackgroundColor(Color.RED);
tv.setText(start[position]); return convertView;
} @Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = flater.inflate(R.layout.list, null);
ImageView iv = (ImageView) convertView.findViewById(R.id.iv1);
iv.setImageResource(image[position]);
TextView tv = (TextView) convertView.findViewById(R.id.tv1); tv.setText(start[position]);
tv.setBackgroundColor(Color.GREEN); return convertView;
}
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <ImageView
android:id="@+id/iv1"
android:layout_width="50dp"
android:layout_height="50dp" /> <TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="10dp"
android:textSize="20sp" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources> <string-array name="start">
<item>北京</item>
<item>成都</item>
<item>广州</item>
<item>杭州</item>
<item>武汉</item>
<item>西安</item>
<item>深圳</item>
</string-array>
<string-array name="target">
<item>北京</item>
<item>成都</item>
<item>广州</item>
<item>杭州</item>
<item>武汉</item>
<item>西安</item>
<item>深圳</item>
</string-array> </resources>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lixu.xialakuang.MainActivity" > <TextView
android:id="@+id/tv2"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:gravity="center" /> <TextView
android:id="@+id/tv3"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_toRightOf="@id/tv2"
android:gravity="center" /> <LinearLayout
android:id="@+id/linearlayout"
android:layout_width="300dp"
android:layout_height="200dp"
android:layout_below="@+id/tv2"
android:layout_centerHorizontal="true"
android:orientation="horizontal" > <Spinner
android:id="@+id/sp1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" /> <Spinner
android:id="@+id/sp2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout> </RelativeLayout>
运行效果图:

下拉选择框 Spinner的用法。的更多相关文章
- android下拉选择框spinner
spinner是什么东西呢?有点像下拉菜单,其实是一个弹出窗口,但是是可以进行进一步操作的弹出窗口.你点击那个三角形的符号,弹出一个窗口,通常是列表,然后进行操作. 它在xml文件中的定义和其它控件没 ...
- java、easyui-combotree树形下拉选择框
最近一直在研究这个树形的下拉选择框,感觉非常的有用,现在整理下来供大家使用: 首先数据库的表架构设计和三级菜单联动的表结构是一样,(父子关系) 1.下面我们用hibernate建一下对应的额实体类: ...
- FancySelect – 更好用的 jQuery 下拉选择框插件
FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...
- HTML、CSS小知识--兼容IE的下拉选择框select
HTML <div class="s_h_ie"> <select id="Select1" disabled="disabled& ...
- Bootstrap系列 -- 15. 下拉选择框select
Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格 <form role=&quo ...
- CSS自定义select下拉选择框(不用其他标签模拟)
今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...
- 基于jQuery美化联动下拉选择框
今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲 ...
- ul+jquery自定义下拉选择框
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框)
[源码下载] 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框) 作者:webabcd 介绍背水一战 Wind ...
随机推荐
- Python3基础 setattr 设置对象的属性值,如果属性不存在就创建
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 向linux内核版本号添加字符/为何有时会自动添加"+"号或者"xxx-dirty"【转】
本文转载自:https://blog.csdn.net/kangear/article/details/17020835 原文地址:http://blog.csdn.net/adaptiver/art ...
- 项目管理PV、EV、AC、BAC、EAC、ETC等计算
PV[Planned Value]计划值:应该完成多少工作?[96版的BCWS] EV[Earned Value]挣值:完成了多少预算工作?[96版的BCWP] AC[Actual Cost]实际成本 ...
- ubuntu16.04下内核模块解析
一.环境如下: 1.1内核版本: jello@jello:~$ uname -a Linux jello 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19: ...
- Shell变量知识进阶
一,Shell中特殊且重要的变量 $0结合dirname和basename分别取出脚本名称和脚本路径 [root@192-168-3-163 scripts]# cat test.sh #!/bin/ ...
- poj 2449 Remmarguts' Date 求第k短路 Astar算法
=.=好菜 #include <iostream> #include <cstdio> #include <string.h> #include <cstri ...
- StringUtils类常用的方法讲解
StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 ...
- BFS-迷宫问题-用宽度(广度)优先搜索解决最优路径问题
题目: 给定一个大小为 N×M 的迷宫.迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格 的通道移动.请求出从起点到终点所需的最小步数.请注意,本题假定从起点一定可以移动 到终点. 限制条件;N, ...
- MVC ---- Linq查询
Linq查询:编译后,会生成对应的标准查询运算符!所以说,Linq只是类似与Sql的一种更加友好的语法而已: public class LinqDemo{ public static void Tes ...
- SQLServer中获取所有数据库名、所有表名、所有字段名的SQL语句
----1. 获取所有的数据库名----- SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME -----2. 获取所有的表名------ S ...