高级控件之列表选择框(Spinner)

阅读: 评论:0

高级控件之列表选择框(Spinner)

高级控件之列表选择框(Spinner)

一.列表选择框的基本知识

      Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源。

(一)XML配置:

 <Spinner android:id="@+id/ctype" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:entries="@array/ctype"/>//设置数组源 

(二)选中默认值:

spinner.setSelection(2,true);选中默认值

(三)监听事件:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {@Override public void onItemSelected(AdapterView<?> parent, View view ,  int position, long id) { //当用户选择其中一项时 } @Override public void onNothingSelected(AdapterView<?> parent) {//当没有任何选择时} 
});

      它也可以设置适配器作为数据源,如果下拉列表中并不止一个TextView显示文本,那么就需要设置适配器,但是一般下拉列表都只需要一个文本。

(四)适配器

      spinner.setAdapter(adapter); 如果需要多个组件值都需要改变,那么一般使用SimpleAdapter类。

(五)自动完成文本框(AutoCompleteTextView)和列表选择框(Spinner)的区别

      都是有点类似下拉效果而已,但是实际用途是非常不一样的;
      1.自动完成文本框继承于EditText,是输入内容时的提示作用。
      2.列表选择框一般用于点击一个文本框,然后显示可以选择的列表内容,点击列表某个内容后把数据显示在文本框内。

二.使用资源文件的数据来加载显示Spinner

(一)创建资源文件l(在values文件夹中)

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="myarray"><item>李嘉诚</item><item>李文志</item><item>李世民</item><item>李鸿章</item><item>李丹丹</item><item>李泉</item></string-array>
</resources>

(二)设计布局文件

<RelativeLayout xmlns:android=""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/myarray" /></RelativeLayout>

(三)java代码设计

public class MainActivity extends Activity {// Spinner对象Spinner spinner;// 数据源String arr[];@Overrideprotected void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);setContentView(R.layout.activity_main);// 实例化对象spinner = (Spinner) findViewById(R.id.spinner);//获取资源文件里面的数组数据arr=getResources().getStringArray(array);// 添加选中条目的点击事件spinner.setOnItemSelectedListener(new OnItemSelectedListener() {// 选中任意的条目后会触发@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(MainActivity.this, "你选中了" + arr[position], 0).show();}// 这个方法基本没有用@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});}}

程序运行后显示的界面:

默认选中的是第一个资源数据;

点击下拉框后显示的界面:

点击下拉显示的某一个数据后显示的界面:

三.使用数组或集合的数据来加载显示Spinner

(一)布局文件

<RelativeLayout xmlns:android=""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"/></RelativeLayout>

(二)java代码文件

ample.lesson7_spinner;import android.R.integer;
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;
import android.widget.SpinnerAdapter;
import android.widget.Toast;public class MainActivity extends Activity {// Spinner对象Spinner spinner;// 数据源String[] array = { "张三", "张4", "张5", "张6", "张7", "张8", "张9", "张10", "张11" };String arr[];@Overrideprotected void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);setContentView(R.layout.activity_main);// 实例化对象spinner = (Spinner) findViewById(R.id.spinner);     // 添加选中条目的点击事件spinner.setOnItemSelectedListener(new OnItemSelectedListener() {// 选中任意的条目后会触发@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(MainActivity.this, "你选中了" + arr[position], 0).show();}// 这个方法基本没有用@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});
//创建适配器对象SpinnerAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, array);
//给Spinner设置适配器 
spinner.setAdapter(adapter);}}

程序运行后点击下拉后显示的界面:

在一般的程序中第二种方法的使用是常见的,因为页面数据的传递一般都是集合或数组。

本文发布于:2024-02-04 22:27:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170717814460225.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控件   高级   列表   Spinner
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23