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中设置数组源 ...
随机推荐
- 最新的 cocoapods 安装与使用(2016.11)
cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...
- iOS 查找字符串 相同 子字符串的位置 range
问题:解决替换同一个字符串的多个相同的字符eg. xxx这个超级大土豪白送xxx一个!赶快来抢把! 将第一个xxx换成名字 将第二个xxx换成物品 两种办法 第二种办法更灵活一点 //第一种办法 ...
- iOS-开发日志-UIButton
UIButton属性 1.UIButton状态: UIControlStateNormal // 正常状态 UIControlStateHighlighted // 高 ...
- 12_复杂查询01_Mapper代理实现
[工程截图] [代码实现] [user.java] package com.Higgin.Mybatis.po; import java.util.Date; public class User { ...
- vim 自動化配置
Vim是Linux系統上常用的編輯器/Text Editor.不過很多人由於不瞭解如何配置,增加了很多煩惱. 今天介紹一個自動化的配置spf13,直接下載製作好的配置並進行自動設置. 1.官方的安裝步 ...
- identifier not found error on function call
在C++工程中,自定义一个方法 void fgetsDemo(),在main 方法中调用,源代码如下: #include "stdafx.h" #include <stdio ...
- Maven多层嵌套
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- placeholder属性兼容js支持
$(function(){ //判断浏览器是否支持placeholder属性 supportPlaceholder='placeholder'in document.createElement('in ...
- 禁止选择文本和禁用右键 v2.0
禁止鼠标右键(注:在火狐浏览器没有起到效果作用) <script> function stop() { return false }; document.oncontextmenu = s ...
- PHP - php汉字转拼音
php汉字转拼音 php函数(由dedecms(dedecms/include/inc/inc_fun_funAdmin.php)的SpGetPinyin函数修改,dedecms的字典不太完全): & ...