`
zengyan2012
  • 浏览: 413758 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android 自定义spinner

阅读更多

  大家当看完这一片文章以后,我们就可以自定义spinner了,那大家还等什么我们就来看看吧。在Android的UI开发中,Spinner(下拉列表)总是可以用到的,一个简单的自定义Spinner制作我们只需要记住这重要的五步,一个Spinner就可以应用而生了。

       (1)新建一个Android工程,名字为SpinnerTest。修改layout下的main.xml,添加一个Textview和一个Spinner,文件内容如下:

Java代码:

  1. < LinearLayout
  2. android:id="@+id/widget28"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical"
  6. xmlns:android="http://schemas.android.com/apk/res/android" >

  7. < TextView
  8. android:id="@+id/TextView_Show"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. android:text="你选择的是"
  12. android:textSize="25sp">
  13. < /TextView>

  14. < Spinner
  15. android:id="@+id/spinner_City"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content">
  18. < /Spinner>
  19. < !-- 定义一个下拉菜单-->

  20. < /LinearLayout>
复制代码


      (2)修改你的SpinnerTest类,在这里我们就要记住五步来自定义一个Spinner了,完整代码及五步注释如下:

Java代码:

  1. package eoe.spinner;

  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.view.MotionEvent;
  7. import android.view.View;
  8. import android.view.View.OnTouchListener;
  9. import android.view.animation.Animation;
  10. import android.view.animation.AnimationUtils;
  11. import android.widget.AdapterView;
  12. import android.widget.ArrayAdapter;
  13. import android.widget.Spinner;
  14. import android.widget.TextView;

  15. public class SpinnerTest1 extends Activity {
  16. /** Called when the activity is first created. */

  17. private List< String> list = new ArrayList< String>();

  18. private TextView myTextView;
  19. private Spinner mySpinner;
  20. private ArrayAdapter< String> adapter;
  21. private Animation myAnimation;

  22. @Override
  23. public void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.main);

  26. //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
  27. list.add("北京");
  28. list.add("上海");
  29. list.add("深圳");
  30. list.add("南京");
  31. list.add("重庆");

  32. myTextView = (TextView)findViewById(R.id.TextView_Show);
  33. mySpinner = (Spinner)findViewById(R.id.spinner_City);

  34. //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
  35. adapter = new ArrayAdapter< String>(this,android.R.layout.simple_spinner_item, list);

  36. //第三步:为适配器设置下拉列表下拉时的菜单样式。
  37. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

  38. //第四步:将适配器添加到下拉列表上
  39. mySpinner.setAdapter(adapter);

  40. //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中
  41. mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){

  42. public void onItemSelected(AdapterView< ?> arg0, View arg1, int arg2, long arg3) {
  43. // TODO Auto-generated method stub
  44. /* 将所选mySpinner 的值带入myTextView 中*/
  45. myTextView.setText("您选择的是:"+ adapter.getItem(arg2));
  46. /* 将mySpinner 显示*/
  47. arg0.setVisibility(View.VISIBLE);
  48. }

  49. public void onNothingSelected(AdapterView< ?> arg0) {
  50. // TODO Auto-generated method stub
  51. myTextView.setText("NONE");
  52. arg0.setVisibility(View.VISIBLE);
  53. }
  54. });

  55. /*下拉菜单弹出的内容选项触屏事件处理*/
  56. mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){
  57. public boolean onTouch(View v, MotionEvent event) {
  58. // TODO Auto-generated method stub
  59. /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好*/
  60. v.setVisibility(View.INVISIBLE);
  61. return false;
  62. }
  63. });

  64. /*下拉菜单弹出的内容选项焦点改变事件处理*/
  65. mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){
  66. public void onFocusChange(View v, boolean hasFocus) {
  67. // TODO Auto-generated method stub
  68. v.setVisibility(View.VISIBLE);
  69. }
  70. });
  71. }


  72. }
复制代码

 


       记住这五步后,一个Spinner就Ok了,其中在为Spinner的适配器设置下拉时的菜单样式时,我们可以自定义自己的样式,如果嫌麻烦,就直接用android.R.layout的,就如下面这样。  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

 

转自:http://www.eoeandroid.com/thread-70595-1-1.html

分享到:
评论
2 楼 zengyan2012 2012-11-13  
edmundk 写道
  



转自:http://www.eoeandroid.com/thread-70595-1-1.html
1 楼 edmundk 2012-11-13  
  

相关推荐

    Android自定义Spinner样式

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

    android自定义Spinner

    然而,标题"android自定义Spinner"表明我们将探讨如何超越默认的显示方式,即避免使用Dialog形式,而是实现一个下拉式的Spinner显示。 1. **Spinner基础知识**: - Spinner是Android SDK中的一个视图组件,属于...

    Android 自定义spinner控件下拉框实现

    你可以下载并研究该项目,了解每个步骤的具体实现细节,这对于提升Android自定义控件开发技能大有裨益。 总之,自定义spinner控件是一种提升用户体验和满足个性化需求的有效手段。通过继承LinearLayout并结合...

    Android自定义Spinner

    然而,当我们需要自定义Spinner的下拉样式时,原生的Spinner就显得力不从心了。这时,我们可以利用PopupWindow来替代Spinner的下拉菜单。PopupWindow是一个可以浮现在屏幕任意位置的窗口,它的灵活性非常高,可以...

    android自定义Spinner下拉菜单(下拉列表框)样式

    android自定义Spinner下拉菜单(下拉列表框)样式

    Android自定义spinner下拉框

    Android自定义spinner下拉框实现的实现 http://blog.csdn.net/jdsjlzx/article/details/41316417 请支持原创:http://blog.csdn.net/geniuseoe2012/article/details/8723702

    Android自定义spinner下拉框实现的实现

    在`SpinnerTest`这个项目中,可能包含了实现上述自定义Spinner的示例代码,包括布局文件和对应的Adapter类。通过分析和运行这个示例,开发者可以更好地理解自定义Spinner下拉框的实现过程。 总的来说,自定义...

    android自定义spinner

    在标题"android自定义spinner"中,我们可以推断出作者实现了一个自定义的Spinner控件,可能包括以下方面: 1. **自定义样式**:可能修改了Spinner的背景、边框、文字颜色、字体大小等,使其视觉效果更加美观。 2. *...

    android自定义spinner下拉框实现(封装更通用)

    博文参考:http://blog.csdn.net/geniuseoe2012/article/details/8723702 android仿web风格的spinner下拉框实现demo,实现更通用

    Android 自定义Spinner的Demo

    在Android Studio中自定义Spinner,我们可以实现更丰富的视觉效果和交互体验。下面将详细介绍如何在Android Studio中实现一个自定义的Spinner。 首先,我们需要了解Spinner的基本用法。在布局XML文件中添加Spinner...

    android 自定义spinner popupWindow

    自定义Spinner主要涉及以下几个方面: 1. **自定义样式**:可以通过修改Spinner的默认主题或者创建自定义主题来改变其外观,如背景色、文字颜色等。 2. **自定义弹出列表**:默认的Spinner弹出列表是AlertDialog,...

    自定义spinner

    在Android开发中,Spinner是一个非常...总之,自定义Spinner是一个结合了数据处理、UI设计和事件监听的综合实践,通过学习和改进这个有缺陷的示例,开发者可以更深入地理解和掌握Android中Spinner的使用和定制技巧。

    android 自定义Spinner

    针对这个问题,我们可以进行自定义Spinner的开发,以实现更友好的界面和交互效果。 自定义Spinner的核心目标是使其能够自适应屏幕大小,确保所有的选项都能清晰可见。这通常涉及到以下几个方面: 1. **自适应高度*...

    Android自定义Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)

    本篇文章将详细介绍如何在Android中自定义Spinner的下拉列表,包括使用ArrayAdapter和自定义Adapter两种方法。 ### 一、使用ArrayAdapter ArrayAdapter是Android提供的基础适配器,它可以方便地将数组数据与...

    android Spinner的简单有效的使用

    你可以自定义Spinner的显示样式,如字体、颜色、大小等。可以通过修改`simple_spinner_item.xml`来改变每个条目的样式,或者创建自己的布局文件并传给ArrayAdapter的构造函数。 ```java ArrayAdapter&lt;String&gt; ...

    Android城市级联下拉框(自定义Spinner)

    在Android开发中,有时...总之,实现Android城市级联下拉框(自定义Spinner)需要对Spinner的基本使用、事件监听、数据更新以及界面定制有深入了解。通过不断实践和优化,我们可以创建出用户体验优秀的级联选择组件。

    自定义Spinner

    本篇文章将深入探讨如何在Android中自定义Spinner,并通过实例项目`SpinerWindowDemo`来阐述相关知识点。 1. **Spinner的基本使用** - Spinner通常与ArrayAdapter或CursorAdapter配合使用,将数据源(如数组或...

    学习Android自定义Spinner适配器

    本文为大家分享Android自定义Spinner适配器的相关知识点,供大家参考,具体内容如下 一、大致效果 二.关键代码 在注释中讲重点吧。 (1)Spinner的布局: car_brand_spinner.xml 即为弹出来的下拉列表的布局啦,...

    简单的自定义Spinner

    ### 知识点详解:简单的自定义Spinner #### 一、引言 在Android开发过程中,经常需要使用到`Spinner`这一控件来提供用户选择的功能。然而,默认的`Spinner`样式可能无法满足设计师或者产品经理对UI的要求。因此,...

Global site tag (gtag.js) - Google Analytics