`
1140566087
  • 浏览: 555442 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18387
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:312619
Group-logo
J2ME 基础学习课程集
浏览量:18511
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17450
社区版块
存档分类
最新评论

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


}


  • 大小: 22.4 KB
  • 大小: 51.7 KB
0
0
分享到:
评论
2 楼 1140566087 2014-03-18  
dugujiujian 写道
R.layout.simple_spinner_dropdown_item  这个那里来?

这个是Android 封装好的,系统自带的布局文件:android.R.layout.simple_spinner_dropdown 可以直接进行引用的!
1 楼 dugujiujian 2014-03-11  
R.layout.simple_spinner_dropdown_item  这个那里来?

相关推荐

    android studio,demo,Spinner下拉菜单多选的实现

    在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...

    android studio 的下拉菜单Spinner使用详解

    本文主要介绍了 Android Studio 中下拉菜单 Spinner 的使用详解,包括 Spinner 的相关属性、使用方法和示例程序,以及与 Gallery 组件的区别和用法。希望对大家的学习有所帮助,也希望大家多多支持我们。

    android 下拉菜单Spinner 几种使用

    在Android开发中,Spinner是一个常用的组件,它提供了一个下拉选择菜单,用户可以通过点击来展开一个列表,并从中选择一个选项。本篇文章将详细介绍Android Spinner的几种使用方法。 首先,我们来了解一下Spinner的...

    android spinner简单示例

    本示例将详细介绍如何在Android应用中实现一个简单的Spinner。 首先,我们需要在布局文件中添加Spinner。在`res/layout/activity_main.xml`中,可以这样定义Spinner: ```xml &lt;Spinner android:id="@+id/spinner...

    Android自定义Spinner样式

    在Android开发中,Spinner是一个非常常用的控件,...通过这些方法,你可以打造出与应用主题相符、用户体验良好的Spinner组件。记住,良好的UI设计能够提升用户对应用的满意度,因此花时间在自定义控件样式上是值得的。

    android中下拉菜单示例

    总结,Android的Spinner组件提供了一种简洁的用户交互方式,允许用户在有限的选项中进行选择。通过适配器绑定数据源,监听选择事件,我们可以实现功能丰富的下拉菜单。在兼容性方面,使用`AppCompatSpinner`和`...

    Android带设置默认值的Spinner

    在Android开发中,Spinner是一个常用的组件,用于提供一个下拉选择菜单,用户可以在其中选择一个选项。本示例关注的是如何创建一个具有默认值并能自定义显示与下拉效果的Spinner。以下将详细介绍实现这一功能的关键...

    Android Spinner实现图片列表

    Spinner是Android中的一个选择器组件,它可以显示一个下拉菜单,用户可以通过点击或者触摸来选择其中的一项。默认情况下,Spinner只会显示一个选定项的文本内容。 2. **Spinner图片列表的实现** - **自定义适配器...

    Android编程开发之Spinner组件用法

    Spinner组件组要用显示一个下拉列表,在使用中需要用到适配器Adapter,下面是一个该组件的使用示例 首先是布局文件main.xml: &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;LinearLayout xmlns:android=...

    实现android Spinner选择后被选中的item有个背景的功能

    在Android开发中,Spinner是一个常用的组件,用于展示一个下拉列表供用户选择。它类似于iOS中的Segmented Control或...通过以上步骤,你可以在Kotlin编写的Android应用中创建一个功能完备且视觉效果丰富的Spinner组件。

    android 自定义spinner popupWindow

    在Android开发中,Spinner是一个常用的组件,用于展示一个下拉列表供用户选择。然而,系统默认的Spinner样式可能无法满足所有设计需求,这时就需要我们进行自定义。本篇将深入探讨如何自定义Android的Spinner,并...

    Android实现下拉菜单Spinner效果

    总的来说,Android的Spinner组件提供了一种简单而有效的交互方式,让用户在有限的选项中进行选择。通过适配器填充数据,设置样式,并监听选择事件,我们可以轻松地在应用中实现下拉菜单的功能。这个实例展示了如何...

    Android编程实现多列显示的下拉列表框Spinner功能示例

    首先,我们要注意的是,这个所谓的“多列Spinner”实际上不是一个真正的Spinner组件,而是一个通过AlertDialog.Builder实现的定制视图。这种方式的好处在于可以自定义视图布局,以满足多列显示的需求。在实现过程中...

    Android源码——Spinner图文混排源码_new_15.7z

    在Android开发中,Spinner是一个非常常见的控件,它允许用户从一组预定义的选项中进行选择,通常用于下拉菜单。在"Android源码——Spinner图文混排源码_new_15.7z"这个压缩包中,我们可能找到了一个关于如何在...

    Android自定义Spinner

    在Android开发中,Spinner是一个非常常用的组件,它用于展示一个可选择的下拉菜单,通常用在需要用户从预设选项中进行选择的情景。然而,Android原生的Spinner样式较为单一,有时不能满足设计师或者开发者对界面美观...

    Android自定义下拉列表

    Spinner是Android SDK中的一个视图组件,位于`android.widget.Spinner`包中。它通过`Adapter`来显示数据,用户可以选择其中一个选项,并在选中后显示在Spinner本身。通常,我们使用ArrayAdapter或者CursorAdapter来...

    android listview和spinner实例代码

    在Android开发中,ListView和Spinner是两种非常常用的UI组件,它们在数据展示和用户交互方面起着关键作用。本文将详细讲解如何在Android应用中实现ListView和Spinner,并结合不同的数据源进行实例操作。 首先,我们...

    android Spinner的简单有效的使用

    总的来说,Android的Spinner是一个强大且灵活的组件,适用于各种用户输入场景。通过ArrayAdapter的配合,我们可以轻松地定制数据源和界面,同时监听用户的操作。通过不断实践和探索,开发者可以充分利用Spinner的...

    android自定义Spinner

    - Spinner是Android SDK中的一个视图组件,属于ViewGroup的一种,它可以提供一个下拉菜单来让用户在多个选项中选择。 - 默认情况下,当用户点击Spinner时,系统会弹出一个Dialog展示所有可选项。 - Spinner的数据...

Global site tag (gtag.js) - Google Analytics