android Spinner的使用
首先是MainActivity
package com.example.spinnertest; import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView; import com.example.spinnertest.R; public class MainActivity extends Activity {
private Spinner myS;
private List<String> datas=new ArrayList<String>();
private MySpinnerAdapter sAdapter;
private String value;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myS = (Spinner)findViewById(R.id.spinnerS);
initData();
sAdapter = new MySpinnerAdapter(this,datas);
myS.setAdapter(sAdapter);
refreshShowView();
myS.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
value = sAdapter.getItem(arg2);
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub }
});
} private void initData() {
// TODO Auto-generated method stub
datas.add("a");
datas.add("b");
datas.add("c");
datas.add("d");
datas.add("e");
datas.add("f");
value = datas.get(4);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} class MySpinnerAdapter extends ArrayAdapter<String> { private List<String> mList;
private Context mContext;
class ViewHolder {
public TextView spinnerTv;
public ViewHolder(View v){
spinnerTv = (TextView)v.findViewById(R.id.spinner_tv);
}
}
public MySpinnerAdapter(Context context, List<String> list) {
super(context,R.layout.spinner_item,R.id.spinner_tv, list);
// TODO Auto-generated constructor stub
setData(list);
mContext = context;
}
public void setData(List<String> list){
mList = list;
notifyDataSetChanged();
} @Override
public int getCount() {
// TODO Auto-generated method stub
if(mList==null){
return 0;
}
return mList.size();
} @Override
public String getItem(int position) {
// TODO Auto-generated method stub
if(mList==null){
return null;
}
return mList.get(position);
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} @Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder = null;
if(convertView==null){
convertView = LayoutInflater.from(mContext).inflate(
R.layout.spinner_item, null);
holder= new ViewHolder(convertView);
convertView.setTag(holder);
}else{
holder = (ViewHolder)convertView.getTag();
}
String myListItem = mList.get(position);
holder.spinnerTv.setText(myListItem);
return convertView;
} } private void refreshShowView(){
if(!TextUtils.isEmpty(value)){
int i = 0;
for(String item:datas){
if(value.equals(item)){
break;
}
i++;
}
if(i==datas.size()){
i = datas.size()-1;
}
myS.setSelection(i);
}
}; }
然后是activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="horizontal"
android:gravity="center_vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题"/>
<Spinner
android:id="@+id/spinnerS"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"/> </LinearLayout>
然后是spinner_item:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:id="@+id/spinner_tv"/>
</RelativeLayout>
android Spinner的使用的更多相关文章
- android Spinner 续
android Spinner 续 动态增删Spinner中的数据项 public class EX04_09 extends Activity{ private static final Stri ...
- Xamarin android spinner的使用方法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Android spinner 样式及其使用详解
设计与开发首页 > 应用专题 > 移动开发 > 正文> Android spinner 样式及其使用详解 相关文章: Android 开源项目应用程序与框架推荐 Android ...
- Android Spinner In Toolbar
As the title of the post suggest in this tutorial we will see how to have spinner widget inside the ...
- Android Spinner 下拉框简单应用 详细注解
目录 Android Spinner 代码部分 Spinner代码介绍 核心代码 说在最后 @ Android Spinner Spinner 提供下拉列表式的输入方式,该方法可以有效节省手机屏幕上的 ...
- android Spinner的简单用法
上代码: spinner = (Spinner) findViewById(R.id.spinner); tv = (TextView) findViewById(R.id.tv); final Ar ...
- Android spinner控件
spinner控件是Android中下拉控件,现在介绍它两种用法.第一种,从资源文件中获取下拉值:第二种,从代码中获取下拉值. 第一种,首先要在资源文件中把值写好: <?xml version= ...
- Android Spinner(级联 天气预报)
activity_spinner.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...
- Android Spinner列表选择框
Spinner Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源. 1.直接设置数组源 在res/values/strings.xml中设置数组源 ...
随机推荐
- c标准库中字符和数字转换的函数
字符转换为数字: #include<stdlib.h> atoi(); 将字符转换为整型 例:char ch1;int i=atoi(ch ...
- oc ios 中文字符串 进行 sha1加密 错误?
我在网上找到了一个oc版加密的工具类,但是加密中文就出现大问题 const char *cstr = [self cStringUsingEncoding:encoding]; NSData *dat ...
- 脱离Xcode,程序在模拟器中无法运行
今天在调试项目的时候 突然发现,如果项目不通过Xcode启动而是直接通过模拟器进行启动,程序闪一下马上退出,并且不是闪退,而是跑到后台去了,并且后台的程序同样无法启动.找了好多解决办法,最后的解决方案 ...
- java三大特性性:封装、继承和多态
一.封装 封装是指隐藏对象的属性及实现细节,对外仅提供接口可见.封装实现了信息隐藏,利于软件复用.其优点是达到了模块化的标准,从而提高了代码的复用程度.在某种程度上,封装也大大改善了软件开发的可维护性 ...
- centOS tengine 安装后 不能访问的问题
1 安装方式跟在ubuntu下 安装一样.因为都是用源码 2 但安装好以后发现,局域网电脑访问不了!.原以为是安装错了.又装了一遍,还是不行,最终是iptables 没开放80端口... http: ...
- web api 跨域请求,ajax跨域调用webapi
1.跨域问题仅仅发生在Javascript发起AJAX调用,或者Silverlight发起服务调用时,其根本原因是因为浏览器对于这两种请求,所给予的权限是较低的,通常只允许调用本域中的资源,除非目标服 ...
- html5生成柱状图(条形图)
<html> <canvas id="a_canvas" width="1000" height="700">< ...
- javascript笔记之正则表达式
1.在js正则表达式特殊的需要转义的字符有: ^ $ . * + ? = ! : | \ / ( ) [ ] { } 但实际应用中,还要根据实际情况来判断,以上字符可能不需要转义,也可能不止以上字符 ...
- oracle工具 sqlplus 用户管理
可以通过system用户对普通用户解锁.alter user scott account unlock; 工具:1/ sqlplusw sqlplus 自带.调用oracle安装目录下bin目录下的e ...
- 【python之旅】python的基础三
目录: 1.装饰器 2.迭代器&生成器 3.Json & pickle 数据序列化 4.软件目录结构规范 一.装饰器 定义:本质是函数,(装饰其他函数)就是为其他函数添加附加功能 原 ...