您的位置:首页 > 其它

spinner控件的使用

2015-12-12 19:26 393 查看
<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="com.example.spinner.MainActivity" >

<Spinner

android:id="@+id/spinner"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

</RelativeLayout>

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

<resources>

<string name="app_name">Spinner</string>

<string name="hello_world">Hello world!</string>

<string name="action_settings">Settings</string>

<!--为ArrayAdapter创建数据源 -->

<string-array name="city">

<item >beijing</item>

<item >shanghai</item>

<item >dalian</item>

<item >wuhan</item>

</string-array>

</resources>

package com.example.spinner;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

/*

*

* Spinner这个控件的作用就是下拉列表

* 该控件的实现主要有二中方式

* 第一种:数据集配置在strings.xml文件当中

* 使用spinner的方式主要是分为以下的几个步骤:

* 1;配置layout文件

* 2:在strings.xml文件配置相应的显示数据

* 3:在对应的layout的java代码中获取spinner对象

* 4:创建ArrayAdapter对象,并且设置在spinner中

* 5:将spinner的每一个条目添加一个监听事件

* ---------------------------------

* 程序更加的灵活

* 第二种:动态生成数据集,生成ArrayAdapter对象

* 跟第一种方式是一样的,只不过创建ArrayAdapter的时候,数据是动态添加的

*

* */


public class MainActivity extends Activity {

private Spinner spinner;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取Spinner对象

spinner=(Spinner)findViewById(R.id.spinner);

//创建ArrayAdapter对象

/*

* 第一个参数:上下文对象

* 第二个参数:数据源配置在strings.xml文件中的数据源

* 第三个参数:下拉列表的外观的显示使用的系统平台自动携带的布局文件

* */

/*

* 这是第一种创建ArrayAdapter的方法

ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_spinner_item);

//设置菜单如何显示每一个条目

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

*/

//第二种创建ArrayAdapter的方法

List<String> list=new ArrayList<String>();

//如果List集合中的数据类型是对象的话,我们需要重新toString的方法,在下拉列表中的每一个条目上进行显示 这个很重要

list.add("beijing");

list.add("nanjing");

/*

* 第一个参数:上下文环境的对象

* 第二个参数:每一个条目要显示的布局

* 第三个参数:数据源

*

* */

ArrayAdapter adapter=new ArrayAdapter(this,R.layout.user,list);

//spinner设置要显示的数据源

spinner.setAdapter(adapter);

//设置下拉列表显示的文字

spinner.setPrompt("城市");

//设置每一个条目按下时要触发的事件

spinner.setOnItemSelectedListener(new SpinnerItemSelectedListener());

}

class SpinnerItemSelectedListener implements OnItemSelectedListener{

/*

* 这个方法就是在没有条目被选择时触发

* */

@Override

public void onNothingSelected(AdapterView<?> arg0) {

System.out.println("do nothing!!!!");

}

/*

* 该方法主要就是触发条目被选择时,触发的事件

* 第一个参数:显示的是哪一个AdapterView

* 第二个参数:哪一个view

* 第三个参数:被选择的是第几个

* 第四个参数:被选择的下标

* */

@Override

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,

long arg3) {

//得到被选择条目的文字

String itemString=arg0.getItemAtPosition(arg2).toString();

System.out.println(itemString);

}

}

}

<?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="vertical" >

<TextView

android:id="@+id/textViewId"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: