Spinner的简单操作
来源:互联网 发布:windows api 激活窗口 编辑:程序博客网 时间:2024/05/21 13:39
可见Spinner是继承ViewGroup的,因此也可作为容器所用。 Spinner支持如下xml属性
详细请参考Android API文档
下面就来实战一下,如何使用Spinner
如果使用的Spinner时已经可以确定弹出窗口列表的内容,则不需要编写代码,直接给Spinner指定android:entries属性即可
(1)编写布局文件 activity_main.xml
- <?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <Spinner
- android:id="@+id/spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:entries="@array/language"/>
- </LinearLayout>
(2) 编写下拉内容 strings.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="app_name">Spinner</string>
- <string name="action_settings">Settings</string>
- <string name="hello_world">Hello world!</string>
- <string-array name="language">
- <item>英语</item>
- <item>中文</item>
- <item>日语</item>
- <item>韩语</item>
- <item>西班牙语</item>
- <item>法语</item>
- <item>俄语</item>
- </string-array>
- </resources>
完成上面两步,一个简单的Spinner效果就出来了,如图:
如果Spinner的弹出窗口内容不是确定的,需要动态添加,那又如何实现呢? 下面我们完成一个复杂一点的Spinner案例。
说明:案例涉及Spinner的知识点有:(1)动态添加弹出窗口内容 和确定弹出窗口内容两种方式 (2)自定义弹出窗口 (3)实现Spinner监听
(1)编写布局文件 activity_main.xml
- <?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TextView
- android:id="@+id/info_city"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/city_prompt" />
- <Spinner
- android:id="@+id/mycity"
- android:prompt="@string/city_prompt"
- android:layout_width="250dp"
- android:layout_height="wrap_content"
- android:entries="@array/city"
- android:layout_gravity="center_vertical"
- android:layout_marginLeft="30dp"
- />
- <TextView
- android:id="@+id/info_edu"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/education_prompt" />
- <Spinner
- android:id="@+id/myedu"
- android:layout_width="250dp"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:layout_marginLeft="30dp"/>
- </LinearLayout>
(2)编写strings.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="app_name">Spinner</string>
- <string name="action_settings">Settings</string>
- <string name="hello_world">Hello world!</string>
- <string name="city_prompt">请选择您喜欢的城市:</string>
- <string name="education_prompt">请选择学历:</string>
- </resources>
(3) 编写城市array,下拉内容 city_data.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="city">
- <item>北京</item>
- <item>上海</item>
- <item>广州</item>
- <item>深圳</item>
- <item>天津</item>
- <item>杭州</item>
- </string-array>
- </resources>
(4) 编写 MainActivity.java
步骤:(1)找到布局的Spinner
(2)动态添加spinner的内容list 集合
(3)定义并设置适配器ArrayAdapter
(4)给Spinner设置关联适配器
(5)给Spinner设置监听器
- package com.example.spinner;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.os.Bundle;
- 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.Spinner;
- public class MainActivity extends Activity {
- private Spinner spinnerEdu = null; //定义学历的spinner
- private Spinner spinerCity = null; //定义城市spinner
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- this.spinnerEdu = (Spinner) findViewById(R.id.myedu); //获取学历spinner组件
- this.spinerCity = (Spinner) findViewById(R.id.mycity); //获取城市spinner组件
- //参数一:上下文 参数二:内容数组 参数三:spinner样式
- ArrayAdapter<CharSequence> cityAdapter = ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_list_item_multiple_choice);
- this.spinerCity.setAdapter(cityAdapter); //spinner设置适配器
- this.spinerCity.setSelection(3); //默认选中
- List<CharSequence> list = new ArrayList<CharSequence>(); //list集合,
- list.add("小学");
- list.add("初中");
- list.add("高中");
- list.add("大专");
- list.add("本科");
- list.add("研究生");
- list.add("博士");
- //参数一:上下文 参数二:spinner样式 参数三:内容list
- ArrayAdapter<CharSequence> eduAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_list_item_single_choice, list);
- this.spinnerEdu.setAdapter(eduAdapter); //spinner设置适配器
- //为spinnerEdu添加监听器
- this.spinnerEdu.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- //选中项
- public void onItemSelected(AdapterView<?> parent, View view,
- int position, long id) {
- String currChose = parent.getItemAtPosition(position).toString();
- Log.i("你的学历是:", currChose);
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- Log.i("onNothingSelected", "onNothingSelected");
- }
- });
- }
- @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;
- }
- }
经过上面的步骤,到这来已经完成了一个Spinner的案例了,效果如下:
每次选择学历,监听器都会监听改变的结果
- Spinner的简单操作
- Spinner的简单使用
- Spinner 的简单用法
- spinner的简单使用
- 简单的Spinner运用
- Spinner的简单应用
- Spinner的简单使用
- Spinner的简单学习
- Spinner的简单用法
- Spinner的简单实用
- Spinner的简单使用
- Spinner的简单使用
- Spinner的简单使用
- Spinner的简单使用
- 最简单的Spinner
- spinner的简单使用
- [Android]简单Spinner的用法
- android Spinner的简单使用
- Java编程思想读书笔记之对象导论
- 【网站】福建省地方志资料
- UVA 11983 - Weird Advertisement(线段树)
- DOS虚拟机共享文件方法
- C++ Builder 使用Canvas的方法来绘制图形对象
- Spinner的简单操作
- maven下使用jetty
- 将超星PDG文件转换成PDF文件的方法
- struct和typedef struct的区别
- POJ - 2528 Mayor's posters (线段树+离散化)
- maven环境快速搭建
- cs229-lecture4-学习笔记
- win7 安装 mongodb 绝对正确
- SSL协议相关证书文件