Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。Spinner是View类得一个子类。
先来看看 运行效果吧。
字符串资源string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Activity01!</string>
<string name="app_name">xh_spinner_test</string>
<string name="ys">您的爱好</string>
<string name="lq">篮球</string>
<string name="zp">足球</string>
<string name="pq">排球</string>
</resources>
颜色资源 colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#fd8d8d</color>
<color name="green">#9cfda3</color>
<color name="blue">#8d9dfd</color>
<color name="white">#FFFFFF</color>
<color name="black">#000000</color>
</resources>
布局文件 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:text="@string/ys"
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="28dip"
/>
<Spinner
android:id="@+id/Spinner01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Activity01类
package xiaohang.zhimeng;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
public class Activity01 extends Activity {
final static int WRAP_CONETNT = -2;// 表示WRAP_CONTENT的常量
// 所有资源的图片(足球、篮球、排球) id的数组
int[] drawableIds = { R.drawable.football, R.drawable.basketball,
R.drawable.volleyball };
// 所有资源字符串 (足球、篮球、排球) id的数组
int[] msgIds = { R.string.zp, R.string.lq, R.string.pq };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner sp = (Spinner) findViewById(R.id.Spinner01);
BaseAdapter ba = new BaseAdapter() {
public int getCount() {
// 一共三个选项
return 3;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
// 动态生成每个下拉项对应的View,每个下拉项View由LinearLayout
// 中包含一个ImageView及一个TextView构成
// 初始化LinearLayout
LinearLayout ll = new LinearLayout(Activity01.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
// 初始化ImageView
ImageView ii = new ImageView(Activity01.this);
ii.setImageDrawable((getResources()
.getDrawable(drawableIds[position])));
ll.addView(ii);
// 初始化TextView
TextView tv = new TextView(Activity01.this);
tv.setText(" " + getResources().getText(msgIds[position]));
tv.setTextColor(R.color.black);
tv.setTextSize(24);
ll.addView(tv);
return ll;
}
};
// 为Spinner设置内容适配器
sp.setAdapter(ba);
sp.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// 获取主界面TextView
TextView tv = (TextView) findViewById(R.id.TextView01);
// 获取当前选中选项对应的LinearLayout
LinearLayout ll = (LinearLayout) view;
// 获取其中的TextView
TextView tvn = (TextView) ll.getChildAt(1);
// 用StringBuilder动态生成信息
StringBuilder sb = new StringBuilder();
sb.append(getResources().getText(R.string.ys));
sb.append(":");
sb.append(tvn.getText());
// 信息设置进住界面
tv.setText(sb.toString());
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
- 大小: 18.4 KB
- 大小: 21.4 KB
分享到:
相关推荐
总结起来,Android Spinner控件是构建交互式用户界面的重要组件,它提供了一种简洁高效的方式供用户选择数据。通过理解其基本用法、自定义适配器和事件监听,开发者可以灵活地满足各种应用场景的需求。在实际项目中...
**Android Spinner控件详解** Spinner是Android开发中常用的一种下拉选择控件,它提供了一个可下拉的列表,用户可以从中选择一个项。在设计用户界面时,Spinner经常用于节省屏幕空间,因为它只显示一个选定的条目,...
以上就是关于Android Spinner控件的基本使用和一些常见的应用场景。通过理解和实践这些知识点,开发者能够熟练地在Android应用中集成和定制Spinner,提高用户体验。在实际开发中,还可以根据具体需求进行更多扩展,...
我们大家都应该知道,android给我们提供了一个spinner控件,这个控件主要就是一个列表。 Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的...
接下来,我们将详细讨论如何在Android应用中添加、删除和使用Spinner控件。 **一、Spinner的添加** 1. **布局文件中的添加**: 在XML布局文件中,使用`<Spinner>`标签来添加Spinner控件。例如: ```xml ...
Android Spinner控件实现下拉框功能 Android Spinner控件是 Android 系统中的一种控件,用于实现下拉框功能。通过使用 Spinner 控件,我们可以在 Android 应用程序中实现下拉框的效果。下面我们将通过实例代码来...
本教程将深入探讨如何在Android应用中实现Spinner控件,以及其相关的核心知识点。 1. **Spinner的基本结构**: Spinner由两部分组成:一个显示当前选中项的文本视图和一个下拉菜单,当用户点击该文本视图时,下拉...
然而,原生的Spinner控件在某些场景下可能无法满足开发者的需求,例如样式定制、交互方式等。本篇文章将深入探讨如何通过自定义控件来实现一个具有更多灵活性的Spinner替代方案。 首先,我们创建一个新的布局文件,...
默认情况下,Spinner的下拉菜单使用`dropdown_popup_window`样式,可以通过设置`android:popupTheme`来改变其样式。如果想要自定义下拉菜单的字体大小,可以在`styles.xml`中创建一个新的主题,然后在Spinner中引用...
### Android中Spinner控件的使用 #### 一、在strings.xml文件中设置string-array标签 在Android开发中,`Spinner` 控件是一个非常实用的选择器组件,它允许用户从一个下拉列表中选择一个值。在`strings.xml`文件中...
Spinner是Android系统中的一种常见控件,用于在用户界面中展示一组可选择的选项,并且通常以下拉列表的形式呈现。这个控件非常适合在有限的空间内提供多个选择,比如设置应用的语言、日期格式等。本篇文章将深入探讨...
在Android开发中,Spinner是一个非常常用的控件,它通常用于展示下拉选择菜单,用户可以点击后看到一系列可选项,并进行选择。Spinner提供了一种简洁的方式让用户在预定义的选项中进行选择,常用于设置应用的配置...
在Android开发中,Spinner控件是一种常见的选择列表控件,它允许用户从下拉菜单中选择一个选项。Spinner类似于一个下拉菜单,适用于有限数量的预定义选项,它提供了简洁的用户界面,节省了屏幕空间。这篇博客文章将...
以上就是关于Android Spinner控件的基本使用和自定义Adapter的讲解。通过理解这些知识,开发者可以创建出功能丰富的下拉列表,满足各种用户交互需求。而"AutoTextViewDemo"可能是一个包含自动完成功能的TextView示例...
在XML布局文件中,我们可以通过`<Spinner>`标签来添加Spinner控件。基本的声明如下: ```xml <Spinner android:id="@+id/my_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content...
总的来说,实现"android spinner 三级联动"涉及的知识点包括:Spinner控件的使用、数据适配器的定制、事件监听、数据加载与解析以及数据结构的设计。这个过程需要开发者具备良好的Android基础知识,对数据操作和网络...
在这个例子中包括了众多Android Spinner 控件的用法,以一个下拉框的效果来展示很多Spinner 的使用技巧,示例中的myspinner_dropdown自定义下拉菜单模式定义在res/layout目录下,代码中演示了将ArrayAdapter添加...
总之,Spinner控件是Android应用开发中一种重要的选择组件,通过ArrayAdapter的使用,可以轻松地将数据集与界面控件关联,提供了一种高效且灵活的方式来处理有限的选项选择场景。理解和熟练运用Spinner控件,能帮助...
- 将这个自定义的Spinner控件复制到项目的src/main/java目录下,确保其位于一个合适的包结构内。 - 在需要使用该自定义Spinner的Activity或Fragment中,引入并实例化这个类,配置好数据源和默认值。 综上所述,...