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
分享到:
相关推荐
在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...
本文主要介绍了 Android Studio 中下拉菜单 Spinner 的使用详解,包括 Spinner 的相关属性、使用方法和示例程序,以及与 Gallery 组件的区别和用法。希望对大家的学习有所帮助,也希望大家多多支持我们。
在Android开发中,Spinner是一个常用的组件,它提供了一个下拉选择菜单,用户可以通过点击来展开一个列表,并从中选择一个选项。本篇文章将详细介绍Android Spinner的几种使用方法。 首先,我们来了解一下Spinner的...
本示例将详细介绍如何在Android应用中实现一个简单的Spinner。 首先,我们需要在布局文件中添加Spinner。在`res/layout/activity_main.xml`中,可以这样定义Spinner: ```xml <Spinner android:id="@+id/spinner...
在Android开发中,Spinner是一个非常常用的控件,...通过这些方法,你可以打造出与应用主题相符、用户体验良好的Spinner组件。记住,良好的UI设计能够提升用户对应用的满意度,因此花时间在自定义控件样式上是值得的。
总结,Android的Spinner组件提供了一种简洁的用户交互方式,允许用户在有限的选项中进行选择。通过适配器绑定数据源,监听选择事件,我们可以实现功能丰富的下拉菜单。在兼容性方面,使用`AppCompatSpinner`和`...
在Android开发中,Spinner是一个常用的组件,用于提供一个下拉选择菜单,用户可以在其中选择一个选项。本示例关注的是如何创建一个具有默认值并能自定义显示与下拉效果的Spinner。以下将详细介绍实现这一功能的关键...
在Android开发中,Spinner是一个常用的组件,用于展示一个下拉列表供用户选择。它类似于iOS中的Segmented Control或...通过以上步骤,你可以在Kotlin编写的Android应用中创建一个功能完备且视觉效果丰富的Spinner组件。
Spinner是Android中的一个选择器组件,它可以显示一个下拉菜单,用户可以通过点击或者触摸来选择其中的一项。默认情况下,Spinner只会显示一个选定项的文本内容。 2. **Spinner图片列表的实现** - **自定义适配器...
Spinner组件组要用显示一个下拉列表,在使用中需要用到适配器Adapter,下面是一个该组件的使用示例 首先是布局文件main.xml: <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=...
在Android开发中,Spinner是一个常用的组件,用于展示一个下拉列表供用户选择。然而,系统默认的Spinner样式可能无法满足所有设计需求,这时就需要我们进行自定义。本篇将深入探讨如何自定义Android的Spinner,并...
总的来说,Android的Spinner组件提供了一种简单而有效的交互方式,让用户在有限的选项中进行选择。通过适配器填充数据,设置样式,并监听选择事件,我们可以轻松地在应用中实现下拉菜单的功能。这个实例展示了如何...
首先,我们要注意的是,这个所谓的“多列Spinner”实际上不是一个真正的Spinner组件,而是一个通过AlertDialog.Builder实现的定制视图。这种方式的好处在于可以自定义视图布局,以满足多列显示的需求。在实现过程中...
在Android开发中,Spinner是一个非常常见的控件,它允许用户从一组预定义的选项中进行选择,通常用于下拉菜单。在"Android源码——Spinner图文混排源码_new_15.7z"这个压缩包中,我们可能找到了一个关于如何在...
在Android开发中,Spinner是一个非常常用的组件,它用于展示一个可选择的下拉菜单,通常用在需要用户从预设选项中进行选择的情景。然而,Android原生的Spinner样式较为单一,有时不能满足设计师或者开发者对界面美观...
Spinner是Android SDK中的一个视图组件,位于`android.widget.Spinner`包中。它通过`Adapter`来显示数据,用户可以选择其中一个选项,并在选中后显示在Spinner本身。通常,我们使用ArrayAdapter或者CursorAdapter来...
在Android开发中,ListView和Spinner是两种非常常用的UI组件,它们在数据展示和用户交互方面起着关键作用。本文将详细讲解如何在Android应用中实现ListView和Spinner,并结合不同的数据源进行实例操作。 首先,我们...
总的来说,Android的Spinner是一个强大且灵活的组件,适用于各种用户输入场景。通过ArrayAdapter的配合,我们可以轻松地定制数据源和界面,同时监听用户的操作。通过不断实践和探索,开发者可以充分利用Spinner的...
- Spinner是Android SDK中的一个视图组件,属于ViewGroup的一种,它可以提供一个下拉菜单来让用户在多个选项中选择。 - 默认情况下,当用户点击Spinner时,系统会弹出一个Dialog展示所有可选项。 - Spinner的数据...