xml布局文件:

<RelativeLayout 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"
tools:context=".MainActivity" > <Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_notity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/spinner"
android:layout_marginTop="10dp"
android:text="更新列表"
android:textSize="20sp"/> </RelativeLayout>

spinner_item文件:

<?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/iamge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/> </LinearLayout>

源代码:

package com.example.day04_spinnerlistener;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner; public class MainActivity extends Activity implements View.OnClickListener{ private Spinner spinner;
private String TAG = "MainActivity";
private String[] cities;
private ArrayAdapter<String> adapter;
private Button button;
private ArrayList<String> cityList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.btn_notity);
button.setOnClickListener(this);
spinner = (Spinner) findViewById(R.id.spinner);
cities = new String[] {"北京","上海","广州","杭州","天津"};
cityList = new ArrayList<String>();
for (int i = 0; i < cities.length; i++) {
cityList.add(cities[i]);
}
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, cityList);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
//如何获取被点击的item对应的数据
//通过数据源数组获得该索引的数据
String name1 = cities[position];
//通过适配器获取索引条目的数据
String name2 = adapter.getItem(position);
//通过spinner(适配器控件)获取该索引位置条目的数据
String name3 = spinner.getItemAtPosition(position).toString();
Log.i(TAG ,position+"name1:"+name1+"name2,"+name2+",name3:"+name3 );
} @Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub }
}); }
/**
* 当点击更新按钮,触发监听事件,执行更新数据的操作
*/
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ArrayList<String> newList = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
newList.add("item "+i);
}
//清空数据
// cityList.removeAll(cityList);
//添加新的数据到原数据中
cityList.addAll(newList);
//通知更新数据
adapter.notifyDataSetChanged();
} }

Android_Spinner_Listener的更多相关文章

随机推荐

  1. 八、jdk工具之JvisualVM、JvisualVM之一--(visualVM介绍及性能分析示例)

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  2. 【转】ubuntu自动挂载硬盘方法

    首先建立挂载目录例如:sudo mkdir /movie #根目录下建立movie文件夹sudo mkdir /work   #根目录下建立work文件夹 然后查看硬盘信息sudo fdisk -l ...

  3. 8、四大组件之三-ContentProvider

    课程目标: 理解ContentProvider的作用及好处 认清ContentProvider与数据存储的关系 掌握ContentProvider对外提供的数据模型形式 能够编写ContentReso ...

  4. LoadRunner常见问题整理(转)

    首先要感谢群友的无私分享,才能得到这篇好的学习资料,整理得太好了,所以收藏保存,方便以后学习. 一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消 ...

  5. 树莓PI交叉编译BOOST库(asio网络例子)

    环境搭建参考上一篇文章[http://www.cnblogs.com/yuliyang/p/4023758.html] 客户端(use boost.asio on raspberry pi )clie ...

  6. Spring 拦截器配置

    Spring interceptor拦截器配置 Spring mvc的拦截器是通过handlerinterceptor来实现的 实现方式: 1.自定义一个类实现Spring的handlerinterc ...

  7. codeforce 600A - Extract Numbers

    学习string #include <bits/stdc++.h> #define eps 1e-8 #define M_PI 3.141592653589793 ; using name ...

  8. 了解常见的 Azure 灾难

    以下内容涵盖多种不同类型的灾难情况.数据中心故障不是应用程序范围内发生故障的唯一原因.设计不良或管理错误也会导致中断.请在恢复计划的设计和测试阶段设想可能导致故障的原因,这样做很重要.一个好的计划可充 ...

  9. 说点手动导jar包的细节Referenced Libraries

    对于Referenced Libraries 若是手动,新建好Scala项目工程,这里取名为ScalaInAction 得需将Scala 2.11.8自带的,换成2.10.*版本 在其上,点击右键,B ...

  10. homework-02 一坑到底的最大和联通图

    你在这个作业中学到了什么?  有什么好的设计值得分享?  感想如何 (太容易 / 太难 / 太无趣)? 我觉得这套题目有点偏难,我不像大牛那样,有很多算法可以选择,我是0算法基础的,所以遇到这题我一个 ...