Android_Spinner_Listener

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();    
    }

}
原文地址:https://www.cnblogs.com/fangg/p/5715919.html