android下拉菜单spinner的使用方法

Spinner控件也是一种列表类型的控件,它的继承关系如下:

java.lang.Object 
   ? android.view.View 
     ? android.view.ViewGroup 
       ? android.widget.AdapterView<Textends android.widget.Adapter> 
         ? android.widget.AbsSpinner 
          ? android.widget.Spinner 
android.widget.Spinner继承了android.view.ViewGroup类。

在Android的UI开发中,Spinner(下拉列表)总是可以用到的,一个简单的自定义Spinner制作我们只需要记住这重要的五步,一个Spinner就可以应用而生了。

(1)新建一个android工程,名称为Spinner。同时建一个Activity,名称为SpinnerActivity。

(2)修改res/layout/main.xml

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:id = "@+id/TextView_city"
  9. android:layout_width = "wrap_content"
  10. android:layout_height = "wrap_content"
  11. android:text = "所在城市:"
  12. />
  13. <!-- 定义一个城市信息下拉菜单-->
  14. <Spinner
  15. android:id = "@+id/Spinner_city"
  16. android:layout_width = "wrap_content"
  17. android:layout_height ="wrap_content" >
  18. </Spinner >
  19. </LinearLayout>

(3)SpinnerActivity.java 代码。

[java] view plaincopy

  1. package cn.com;
  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.widget.AdapterView;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.Spinner;
  11. import android.widget.TextView;
  12. public class SpinnerActivity extends Activity {
  13. /** Called when the activity is first created. */
  14. private List<String> list = new ArrayList<String>();
  15. private TextView myTextView;
  16. private Spinner mySpinner;
  17. private ArrayAdapter<String> adapter;
  18. @Override
  19. public void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.main);
  22. //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
  23. list.add("北京");
  24. list.add("上海");
  25. list.add("深圳");
  26. list.add("福州");
  27. list.add("厦门");
  28. myTextView = (TextView)findViewById(R.id.TextView_city);
  29. mySpinner = (Spinner)findViewById(R.id.Spinner_city);
  30. //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
  31. adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);
  32. //第三步:为适配器设置下拉列表下拉时的菜单样式。
  33. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  34. //第四步:将适配器添加到下拉列表上
  35. mySpinner.setAdapter(adapter);
  36. //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中
  37. mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
  38. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
  39. // TODO Auto-generated method stub
  40. /* 将所选mySpinner 的值带入myTextView 中*/
  41. myTextView.setText("您选择的是:"+ adapter.getItem(arg2));
  42. /* 将mySpinner 显示*/
  43. arg0.setVisibility(View.VISIBLE);
  44. }
  45. public void onNothingSelected(AdapterView<?> arg0) {
  46. // TODO Auto-generated method stub
  47. myTextView.setText("NONE");
  48. arg0.setVisibility(View.VISIBLE);
  49. }
  50. });
  51. /*下拉菜单弹出的内容选项触屏事件处理*/
  52. mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){
  53. public boolean onTouch(View v, MotionEvent event) {
  54. // TODO Auto-generated method stub
  55. /**
  56. *
  57. */
  58. return false;
  59. }
  60. });
  61. /*下拉菜单弹出的内容选项焦点改变事件处理*/
  62. mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){
  63. public void onFocusChange(View v, boolean hasFocus) {
  64. // TODO Auto-generated method stub
  65. }
  66. });
  67. }
  68. }

运行结果如下图所示:

时间: 2024-10-14 02:01:42

android下拉菜单spinner的使用方法的相关文章

android 下拉菜单Spinner

activity_main.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

Firemonkey TComboBox 下拉菜单字型修改方法 (D10)

在 FMX 下的 TComboBox 下拉菜单字型修改有二种方法: 使用 Style,需先设定好 Style 后,再指定预设项的 Style,方法如下: procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin ComboBox2.DropDownKind := TDropDownKind.Custom; Combobox2.ListBox.DefaultItemStyles.ItemStyle := 'listbox

Rails Bootstrap dropdown下拉菜单没反应解决方法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { } Mac环境 Rails 5.1.4 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { }

安卓下拉菜单(Spinner)的实现

一.先送上效果图: 二.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" a

Android开发手记(10) 下拉菜单Spinner

1.自定义Spinner 首先,定义Spinner要显示的项目列表/res/values/arrays.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string-array name="citys"> 4 <item>南京</item> 5 <item>徐州</item> 6 <

下拉菜单 Spinner 简单纯字符串版

public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener{ private Spinner spinner; private TextView text; private List<String> data = new ArrayList<String>(); private ArrayAdapter<String> adapter; private

Android下拉菜单效果

一.效果图 二.主要技术点: 1.PopupWindow的使用 2.ListView的使用 三.示例代码 1.布局文件:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match

下拉菜单:‘点击外面关闭’的解决方案

一般遇到这种问题网上的说法都是: 给点击开启下拉菜单的Dom元素方法中添加 e.stopPropagation() 阻止事件冒泡 再给document添加一个监听点击的事件: document.addEventListener('click', this.offDropMenu, false)复制代码 可是这种一般只能适用于普通的下拉导航菜单,点击菜单 或者return false http://hao.caibaojian.com/81927.html https://juejin.im/po

Android之——自定义下拉菜单的实现

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48101651 做过Android开发的童鞋,一般都会遇到这样一种情况,就是Android中原有的下拉控件Spinner过于单调和简单,不能够满足我们实际开发的需求了,这时候就需要我们自己自定义下拉菜单来实现相应的功能,那么,如何实现自定义下拉菜单呢?下面我就来和大家一起实现这个功能. 一.原理 我们这个下拉菜单展示的内容主要以ListView实现,在界面上放置一个文本框,文本框右