Spinner在android开发中也是用的比较多的一个控件,提供了类似于Web中一个下拉列表样式的输入控件。下面先给出一个比较简单的实例,这里我们没有自己去定义下来列表的布局,而是采用android系统提供的布局。效果图如下:
android给Spinner控件提供了这样一个属性:android:entries="@array/books" 它可以指定Spinner的下拉选项,我们可以看出来它的资源是一个array数组。
layout的xml内容:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/my_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/books" />
</LinearLayout>
数组资源的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="books">
<item >Windows</item>
<item >mac os</item>
<item >ubuntu</item>
<item >aix</item>
<item >Linux</item>
</string-array>
</resources>
下面activity代码,
public class SpinnerActivity extends Activity {
private Spinner mySpinner;
private myOnItemSelectedListener listener;
// 注意String[]类型的数组资源不能在UI上定义String[],而是定义一个CharSequence[]
private CharSequence[] os;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mySpinner = (Spinner) findViewById(R.id.my_spinner);
listener = new myOnItemSelectedListener();
// 定义一个CharSequence[] 去拿到String类型的数组
os = getResources().getTextArray(R.array.books);
mySpinner.setOnItemSelectedListener(listener);
}
private final class myOnItemSelectedListener implements OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), os[position], 1).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
}
这个spinner很简单的实现,在写代码的时候发现定义的数组资源在activity中要用CharSequence[]类型,没有自己去定义下拉列表的,后面将会写出一个自定义item的实例。
下面我又重新自己写了一个自定义下拉列表的Spinner,因为实际开发中一般都是要自己定义下拉item才能满足需求的,上图先看效果:
因为程序代码很简单,所以下面只给出下拉列表item的布局和activity代码,首先是下拉item的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/spinner_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/check"
android:contentDescription="@string/what_description" />
<TextView
android:id="@+id/tv_os"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
activity代码,这里我是采用一个继承自BaseAdapter的内部来自定义下拉item的布局的:
public class MySpinnerActivity extends Activity {
private Spinner mySpinner;
private myBaseAdapter adapter;
private String[] os = new String[] { "windows", "mac os", "ubuntu", "linux", "android", "ios" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mySpinner = (Spinner) findViewById(R.id.myspinner);
adapter = new myBaseAdapter();
//mySpinner.setBackgroundColor(android.R.color.background_light);
mySpinner.setAdapter(adapter);
}
private final class myBaseAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public myBaseAdapter() {
super();
mInflater = getLayoutInflater();
}
@Override
public int getCount() {
return os.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = mInflater.inflate(R.layout.spinner_item, null);
ImageView iv_spinner = (ImageView) view.findViewById(R.id.spinner_image);
iv_spinner.setImageResource(R.drawable.check);
TextView tv_os = (TextView) view.findViewById(R.id.tv_os);
tv_os.setText(os[position]);
return view;
}
}
}
如上N多废话,只是自己学习的总结。
- 大小: 17 KB
- 大小: 18.9 KB
分享到:
相关推荐
Android Spinner控件是 Android 系统中的一种控件,用于实现下拉框功能。通过使用 Spinner 控件,我们可以在 Android 应用程序中实现下拉框的效果。下面我们将通过实例代码来介绍如何使用 Spinner 控件实现下拉框...
要处理用户在Spinner中做出的选择,可以通过实现`OnItemSelectedListener`接口并在`onItemSelected()`方法中编写处理逻辑: ```java mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener...
1. **Spinner**:是Android中用于显示下拉列表的一个控件。用户可以通过点击Spinner来显示一个包含多个选项的列表,并从中选择一项。 2. **SQLite**:是一个轻量级的关系型数据库管理系统,非常适合移动设备。它可以...
在这个实例中,可能使用了ArrayAdapter,因为通常级联选择的数据会存储在内存中的数组或列表里。 其次,两个Spinner的联动需要监听第一个Spinner的选择事件。当第一个Spinner的选中项发生变化时,根据选中的值去...
实例122: 在手机中编写一个翻译软件 458 实例123: 生成一个二维码 460 实例124: 使用Google Chart API生成二 维码 463 第11章 平板应用 469 实例125: 开发一个音乐播放器 469 实例126: 开发一个在线天气播报...
在本文中,我们将介绍如何使用Android Studio实现一个简单的考试应用程序实例代码。 knowledge point 1: Android Studio简介 Android Studio是Google推出的一个集成开发环境(IDE),它提供了一个功能强大且灵活...
- **实例说明:** 介绍了如何在Windows系统中安装Android SDK。 - **具体实现:** 下载Android SDK安装包并进行安装。 - **特别提醒:** 注意不同版本的SDK可能会影响应用程序的兼容性。 - **1.4 在Windows环境...
3. 绑定数据:在Activity或Fragment中,实例化Spinner并设置适配器。通过`setAdapter(AreaAdapter)`方法将适配器绑定到Spinner上,然后通过适配器的`addAll(Area[] areas)`方法加载数据。 4. 处理联动逻辑:在`...
在Android开发中,Spinner是用于创建下拉列表的控件,它允许用户在一组预定义的选项中进行选择。在本文档中,我们将探讨如何学习和应用Spinner控件。 首先,创建一个新的Android工程是所有操作的基础。新建工程后,...
这个“安卓QQ相关相关-Android实现仿QQ登录可编辑下拉框自定义spinner.rar”压缩包文件就是一个实例,展示了如何在Android应用中创建一个类似于QQ登录界面的可编辑下拉框,即自定义Spinner。以下将详细讲解实现此类...
这份《Android开发实例大全》提供了丰富的示例和教学案例,覆盖了Android开发中的UI布局设计、控件使用、自动化服务、数据存储、电话短信处理和图形图像处理等多个方面。通过阅读和实践这些实例,开发者可以更好地...
- 提到的代码是基于Android 2.2(API级别8)编写的,需要注意的是,某些API可能在较新的Android版本中有变化或已弃用,因此在更新版本的环境中需要进行适配。 6. **资源文件**: - 布局文件(如 `main.xml`)中应...
在实例中,你可能会遇到如何动态加载布局、如何响应用户输入、如何处理触摸事件以及如何更新UI等内容。这些实例涵盖了Android控件的基本使用,可以帮助开发者快速掌握Android界面设计。 此外,通过标签"控件代码...
《Android应用案例开发大全》是一本深入探讨Android应用程序开发的实战型书籍,其源代码提供了丰富的实例,旨在帮助开发者从实践中学习和理解Android开发的核心概念和技术。这些源代码覆盖了从基础到高级的各种应用...
在Android的测试框架中,JUnit需要与`Instrumentation`一起使用,后者可以控制设备或模拟器上的实际应用实例,使得测试能够访问和操作真实的Android组件。`@UiThreadTest` 和 `@UiThreadTest` 注解可能被用来标识...
在Android平台上进行应用程序开发时,有时我们需要实现货币转换的功能,比如在本例中,我们要讨论的是人民币(CNY)与美元(USD)之间的汇率转换。这个功能对于跨境电商、旅游应用或者金融类应用来说非常实用。下面...
在Android开发中,`BaseAdapter`用于将数据源适配到像`ListView`或`Spinner`这样的视图组件,使得数据能够正确展示。 7. **合成模式**: 合成模式将对象组合成树形结构,以表示部分-整体层次结构。在Android中,`...
3.2 Android中的组件介绍 22 3.3 使用Android SDK帮助 23 3.3.1 Android SDK API文档 23 3.3.2 Android SDK开发指南 24 3.3.3 Android SDK samples 24 3.4 使用DDMS帮助调试程序 26 3.4.1 启动DDMS 26 3.4.2 ...
在Android Studio的布局编辑器中,你可以直接将ListView拖放到设计视图中,或者手动编写XML代码。例如: ```xml android:id="@+id/lv_expense" style="@style/Animation.AppCompat.DropDownUp" android:layout_...
5. 使用封装类:在实际应用中,只需要实例化我们的`PullDownMenu`类,调用其提供的方法即可快速构建下拉菜单,大大简化了代码编写过程。 在提供的`pulldownmenu`文件夹中,可能包含了封装下拉菜单控件的相关源码,...