Android Spinner 组件的应用实例

Android Spinner 组件

Spinner: 下拉组件

使用事项:布局在XML 中实现,具体的数据在JAVA 代码中实现;

所用知识点:

数组适配器:ArrayAdapter  用于关系M 层和 C 层;

事件:OnItemSelectedListener;

案列:查看十二星座效果图:

xml:代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" > 

  <ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" > 

    <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:gravity="center_horizontal"
      android:orientation="vertical" > 

      <Spinner
        android:id="@+id/spinner"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" /> 

      <TextView
        android:id="@+id/showInfo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:gravity="center"
        android:text=" " />
    </LinearLayout>
  </ScrollView> 

</LinearLayout>

java代码如下:

  package com.example.spinnertest; 

import java.util.ArrayList; 

import android.app.Activity;
import android.content.res.Resources;
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.TextView; 

public class MainActivity extends Activity { 

  private Spinner spinner;
  private TextView tx;
  private ArrayList<String> list = null;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 

    /* 获取TextView 实体对象 , 用于显示星座的详细信息 */
    tx = (TextView) findViewById(R.id.showInfo); 

    /* 下拉组件测试 Spinner 对象首先获取 */
    spinner = (Spinner) findViewById(R.id.spinner); 

    /* 准备数据源 M , 用集合进行保存 */
    list = new ArrayList<String>();
    list.add("Aries");
    list.add("Taurus");
    list.add("Gemini");
    list.add("Cancer");
    list.add("Leo");
    list.add("Virgo");
    list.add("Libra");
    list.add("Scorpio");
    list.add("Sagittarius");
    list.add("Capricorn");
    list.add("Aquarius");
    list.add("Pisces"); 

    /* 实现M 层 与C 层的关系 ,绑定数据 */ /* 参数1:上下文对象; 参数2:系统资源布局方式 ; 参数3:数据对象 */
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list); 

    /* 对V 层和C 层进行关系的绑定; */
    spinner.setAdapter(adapter); 

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      /* 对所有的选择项进行监控 *//* 参3:当前选择项的ID 参4:被选择项在组中的位置,逻辑上与ID 相等,但代表的意义不一样 */
      public void onItemSelected(AdapterView<?> arg0, View arg1,
          int id, long position) {
        // Toast.makeText(MainActivity.this, "你选择的是第:"+id+"值为:"+list.get(id), 1000).show(); 

        /* 设置tx对象的值 */
        String temp = getConstellation(id);
        tx.setText("\t"+temp); 

      } 

      @Override
      public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub 

      }
    }); 

  } 

  /* 显示星座的信息 */
  protected String getConstellation(int id){
    Resources rs = getResources();
    String temp = "";
    switch(id){
    case 0:
      temp = rs.getString(R.string.Aries);
      break;
    case 1:
      temp = rs.getString(R.string.Taurus);
      break;
    case 2:
      temp = rs.getString(R.string.Gemini);
      break;
    case 3:
      temp = rs.getString(R.string.Cancer);
      break;
    case 4:
      temp = rs.getString(R.string.Leo);
      break;
    case 5:
      temp = rs.getString(R.string.Virgo);
      break;
    case 6:
      temp = rs.getString(R.string.Libra);
      break;
    case 7:
      temp = rs.getString(R.string.Scorpio);
      break;
    case 8:
      temp = rs.getString(R.string.Sagittarius);
      break;
    case 9:
      temp = rs.getString(R.string.Capricorn);
      break;
    case 10:
      temp = rs.getString(R.string.Aquarius);
      break;
    case 11:
      temp = rs.getString(R.string.Pisces);
      break;
    case 12:
      temp = rs.getString(R.string.Aries);
      break;
    }
    return temp;
  } 

}

以上就是Android Spinner 组件的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Android 中WallpaperManager用法实例

    Android 中WallpaperManager用法实例 注意:壁纸的设置得加入权限: <uses-permission android:name="android.permission.SET_WALLPAPER"/> 1.WallpaperManager  对象的获得: wallpaperManager =WallpaperManager.getInstance(this); 2.设置壁纸的方法: 方法一:wallpaperManager.setBitmap(); /

  • Android编程实现播放视频时切换全屏并隐藏状态栏的方法

    本文实例讲述了Android编程实现播放视频时切换全屏并隐藏状态栏的方法.分享给大家供大家参考,具体如下: 1. Demo示例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (this.getResources().getConfiguration().ori

  • Android使用GridView实现日历的方法

    在开发中可能会遇到某些情况下需要用到日历的功能,并且还要在日历上加标签什么的,最重要的就是android自带的日历由于各个系统版本不同导致日历的样式也不同,这样就会导致使用起来比较麻烦..而且在日历中加标签也不好实现...所以很多时候日历都是自己去实现的...由于自定义日历会比较麻烦...这里就教大家使用GridView来实现,主要是我们比较熟悉这个控件...到时候也可以根据自己的情况进行封装为自定义View 下面就先看看效果图.由于是从项目中抽取出来的,某些地方定制性比较强, 可以根据需求自行

  • 浅谈Android 的线程和线程池的使用

    Android 的线程和线程池 从用途上分,线程分为主线程和子线程:主线程主要处理和界面相关的事情,子线程则往往用于耗时操作. 主线程和子线程 主线程是指进程所拥有的线程.Android 中主线程交 UI 线程,主要作用是运行四大组件以及处理它们和用户的交互:子线程的作业则是执行耗时任务. Android 中的线程形态 1.AsyncTask AsyncTask 是一种轻量级的异步任务类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新 UI, AsyncTas

  • 详解Android 中AsyncTask 的使用

    详解Android 中AsyncTask 的使用 1.首先我们来看看AsyncTask 的介绍:   Handler 和 AsyncTask 都是android 中用来实现异步任务处理的方式:其中: Handler 实例向 UI 线程发送消息,完成界面更新, 优点:对整个过程控制的比较精细:         缺点:代码相对臃肿,多个任务同时执行时,不易对线程进行精确的控制: AsyncTask :比Handler 更轻量级一些,适用于简单的异步处理: 优点:简单 | 快捷 | 过程可控:    

  • Android开发之全屏与非全屏的切换设置方法小结

    本文实例讲述了Android开发之全屏与非全屏的切换设置方法.分享给大家供大家参考,具体如下: 静态方法 1. 代码方式 在Activity类OnCreate方法中设置,代码如下 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().se

  • Android开发实现各种图形绘制功能示例

    本文实例讲述了Android开发实现各种图形绘制功能.分享给大家供大家参考,具体如下: 这里结合本人的开发事例,简单介绍一下如何在Android平台下实现各种图形的绘制. 首先自定义一个View类,这个view类里面需要一个Paint对象来控制图形的属性,需要一个Path对象来记录图形绘制的路径,需要一个Canvas类来执行绘图操作,还需要一个Bitmap类来盛放绘画的结果. Paint mPaint = new Paint(); mPaint.setAntiAlias(true); mPain

  • Android Spinner 组件的应用实例

    Android Spinner 组件 Spinner: 下拉组件 使用事项:布局在XML 中实现,具体的数据在JAVA 代码中实现: 所用知识点: 数组适配器:ArrayAdapter  用于关系M 层和 C 层: 事件:OnItemSelectedListener; 案列:查看十二星座效果图: xml:代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool

  • Android编程开发之Spinner组件用法

    本文实例讲述了Android编程开发之Spinner组件用法.分享给大家供大家参考,具体如下: Spinner组件组要用显示一个下拉列表,在使用中需要用到适配器Adapter,下面是一个该组件的使用示例 首先是布局文件main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res

  • Android可循环显示图像的Android Gallery组件用法实例

    本文实例分析了Android可循环显示图像的Android Gallery组件用法.分享给大家供大家参考,具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Gallery组件指定了10张图像,那么当Gallery组件显示到第10张时,就不会再继续显示了.这虽然在大多数时候没有什么关系,但在某些情况下,我们希望图像显示到最后一张时再重第1张开始显示,也就是循环显示.要实现这种风格的Gallery组件,就需要对Gall

  • Android Spinner与适配器模式详解及实例代码

    最近做项目对Android Spinner 使用,这里简单写个小例子,来测试如何使用. Spinner 是一个下拉列表,往安卓界面中拖拽一个Spinner控件,在属性中设置Android:entries="@array/spinner_data" 其中spinner_data为在string中设置的数组.数组中由固定写好的值.此时便可在界面设置好下拉列表. <Spinner android:id="@+id/spinner1" android:layout_w

  • Android DigitalClock组件用法实例

    本文实例讲述了Android DigitalClock组件用法.分享给大家供大家参考,具体如下: DigitalClock组件的使用很简单,先看看效果图: DigitalClock只需要在布局文件中,用于显示时间的地方使用此组件即可,无需用java代码进行实例化. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro

  • Android四大组件之Service(服务)实例详解

    本文实例讲述了Android四大组件之服务用法.分享给大家供大家参考,具体如下: 很多情况下,一些与用户很少需要产生交互的应用程序,我们一般让它们在后台运行就行了,而且在它们运行期间我们仍然能运行其他的应用. 为了处理这种后台进程,Android引入了Service的概念.Service在Android中是一种长生命周期的组件,它不实现任何用户界面. 基本概念 Ÿ   Service是一种在后台运行,没有界面的组件,由其他组件调用开始. Ÿ   创建Service,定义类继承Service,An

  • Android spinner下垃菜单用法实例详解

    本文实例讲述了Android spinner下垃菜单用法.分享给大家供大家参考,具体如下: 一.使用数组作为数据源 1. 在layout布局文件:声明一个TextView控件和一个Spinner控件,代码如下 <Spinner android:id="@+id/Spinner01" android:layout_width="fill_parent" android:layout_height="wrap_content"></

  • Android Fragment滑动组件ViewPager的实例详解

    Android Fragment滑动组件ViewPager的实例详解 1适配器FragmentPagerAdapter的实现 对于FragmentPagerAdapter的派生类,只需要重写getItem(int)和getCount()就可以了. public class MyFragmentPagerAdapter extends FragmentPagerAdapter { private List<Fragment> list; public MyFragmentPagerAdapter

  • Android 列表选择框 Spinner详解及实例

    Android 列表选择框 Spinner详解及实例 Spinner 是 Android 的列表选择框,不过 spinner 并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择. Spinner 属性: ● android:spinnerMode:列表显示的模式,有两个选择,为弹出列表(dialog)以及下拉列表(dropdown),如果不特别设置,为下拉列表. ● android:entries:使用<string-array.../>资源配置数据源. ● android:prompt:

  • Android Spinner和GridView组件的使用示例

    目录 一. 概述: 二. 实现 三. 美化 四. GridView 一. 概述: Spinner是我们所熟悉的下拉框列表.与ListView类似,我们必须为Spinner对象指定一个Adapter.我们从Spinner的简单用法开始讲述. 二. 实现 MainActivity.java package com.example.demo03_29; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle;

随机推荐