首先是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的使用的更多相关文章

  1. android Spinner 续

    android Spinner 续 动态增删Spinner中的数据项 public class EX04_09 extends Activity{  private static final Stri ...

  2. Xamarin android spinner的使用方法

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  3. Android spinner 样式及其使用详解

    设计与开发首页 > 应用专题 > 移动开发 > 正文> Android spinner 样式及其使用详解 相关文章: Android 开源项目应用程序与框架推荐 Android ...

  4. Android Spinner In Toolbar

    As the title of the post suggest in this tutorial we will see how to have spinner widget inside the ...

  5. Android Spinner 下拉框简单应用 详细注解

    目录 Android Spinner 代码部分 Spinner代码介绍 核心代码 说在最后 @ Android Spinner Spinner 提供下拉列表式的输入方式,该方法可以有效节省手机屏幕上的 ...

  6. android Spinner的简单用法

    上代码: spinner = (Spinner) findViewById(R.id.spinner); tv = (TextView) findViewById(R.id.tv); final Ar ...

  7. Android spinner控件

    spinner控件是Android中下拉控件,现在介绍它两种用法.第一种,从资源文件中获取下拉值:第二种,从代码中获取下拉值. 第一种,首先要在资源文件中把值写好: <?xml version= ...

  8. Android Spinner(级联 天气预报)

    activity_spinner.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  9. Android Spinner列表选择框

    Spinner Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源. 1.直接设置数组源 在res/values/strings.xml中设置数组源 ...

随机推荐

  1. No application 'meetme' for extension 错误

    在asterisk中搭建简单会议室,在extensions.conf中执行到 exten => 18,n,MeetMe(18,p) asterisk控制台提示:Aug 6 8:28:41 WAR ...

  2. iOS开发——百度地图SDK集成

    (正在形成文档,待更新……)

  3. C++ Union妙用(将列表初始化用于数组元素)

    Union是个不被注意的关键字,意为联合体,这是个诡异的名字.若不是为了继承C语言,它也不会出现在C++中(虽说,union在C++中得到了扩充,完成了接近类的功能).它的作用主要是节省内存空间,在嵌 ...

  4. mongodb write 【摘自网上,只为记录,学习】

    mongodb有一个write concern的设置,作用是保障write operation的可靠性.一般是在client driver里设置的,和db.getLastError()方法关系很大 一 ...

  5. vi 或 vim 常用命令(简单够用了)

    1.vi filename :打开或新建文件,并将光标置于第一行首 2.按下i键:编辑或插入数据3.按下shit+: ->表示可以进行命令输入 4.q! ->表示不保存退出.5.w -&g ...

  6. 搭建java开发环境

    windows 去Oracle官网下载exe文件,双击安装. 修改系统环境变量(我的电脑 -> 属性 -> 高级 -> 环境变量). JAVA_HOME: D:\Java\jdk1. ...

  7. cocos2d-x v3.0的window平台搭建和编译成andriod程序

    首先添加这个地址到系统环境变量,path 然后打开CMD,输入如下语句 现在就可以创建一个新项目了 这样一个空的cocos2d-x v3.0的项目就创建好了 接下来编译andriod程序 先在系统环境 ...

  8. 排序算法——QuickSort、MergeSort、HeapSort(C++实现)

    快速排序QuickSort template <class Item> void quickSort (Item a[], int l, int r) { if (r<=l) ret ...

  9. 【转】oracle PLSQL常用方法汇总

    原文:http://www.cnblogs.com/luluping/archive/2010/03/10/1682885.html 在SQLPLUS下,实现中-英字符集转换alter session ...

  10. python学习--string

    1\string are immutable, which means you can't change an existing string. >>>greeting = 'Hel ...