资讯淘帖 手机客户端

127社区-师生共同的网上家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
热搜: 共享上网 网络激活网址 快递联系电话 送餐电话 快餐 团购
关闭

站长推荐

亲,还没下载论坛手机客户端?跟上潮流做时尚达人。掌中乐趣无处不在,快点下载吧。

查看 »

查看: 871|回复: 1

[相关资源] Spinner使用方法

[复制链接]
一笑二过  

11

主题

1

听众

295

积分

责任编辑

  • 收听TA
  • 发消息
发表于 2011-11-6 18:23:08 |显示全部楼层
Spinner是一种下接菜单,类似HTML中的select标签,点击后弹出一个对话框,显示几个供选择的选项,手机屏幕大小有限,如果都用RadioGroup单选按钮,会占用很大的空间。今天的例子最终效果如下图:Spinner需要绑定一个适配器ArrayAdapter,将菜单项放在适配器中,
添加删除菜单项只需要调用适配器的add,remove方法即可。
布局XML;

  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. <EditText android:id="@+id/et"
  8.     android:layout_width="fill_parent"
  9.     android:layout_height="wrap_content"
  10. />
  11. <Button android:id="@+id/add"
  12.     android:layout_width="fill_parent"
  13.     android:layout_height="wrap_content"
  14.     android:text="添加"
  15. />
  16. <Button android:id="@+id/remove"
  17.     android:layout_width="fill_parent"
  18.     android:layout_height="wrap_content"
  19.     android:text="删除"
  20. />
  21. <Spinner android:id="@+id/sp"
  22.     android:layout_width="fill_parent"
  23.     android:layout_height="wrap_content"
  24. />
  25. </LinearLayout>
复制代码

一个EditText,用于定义需要添加或删除的菜单项,一个添加,一个删除按钮,还有一个就是Spinner
在strings.xml中定义一个初始的数组,就是刚开始时Spinner显示的项目,当然,也可以直接在JAVA代码中定义

  1. <string-array name="action">
  2.         <item>吃饭</item>
  3.         <item>睡觉</item>
  4.         <item>上网</item>
  5.     </string-array>
  6. JAVA程序代码:
  7. import java.util.ArrayList;

  8. import android.app.Activity;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.view.View.OnClickListener;
  12. import android.widget.ArrayAdapter;
  13. import android.widget.Button;
  14. import android.widget.EditText;
  15. import android.widget.Spinner;

  16. public class main extends Activity {
  17.     /** Called when the activity is first created. */
  18.     EditText et;
  19.     Button add,remove;
  20.     Spinner sp;
  21.     ArrayList<String> list=new ArrayList<String>();
  22.     ArrayAdapter<String> adapter;
  23.     @Override
  24.     public void onCreate(Bundle savedInstanceState) {
  25.         super.onCreate(savedInstanceState);
  26.         setContentView(R.layout.main);
  27.         et=(EditText)findViewById(R.id.et);
  28.         add=(Button)findViewById(R.id.add);
  29.         remove=(Button)findViewById(R.id.remove);
  30.         sp=(Spinner)findViewById(R.id.sp);
  31.         //获取相应对象
  32.         String[]  ls=getResources().getStringArray(R.array.action);
  33.         //获取XML中定义的数组
  34.         for(int i=0;i<ls.length;i++){
  35.             list.add(ls);
  36.         }
  37.         //把数组导入到ArrayList中
  38.         adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
  39.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  40.         //设置下拉菜单的风格
  41.         sp.setAdapter(adapter);
  42.         //绑定适配器
  43.         sp.setPrompt("标题栏");
  44.         //设置对话框标题栏
  45.         add.setOnClickListener(new OnClickListener(){//添加按钮监听器

  46.             @Override
  47.             public void onClick(View v) {
  48.                 // TODO Auto-generated method stub
  49.                 adapter.add(et.getText().toString());
  50.                 //添加输入的项 ,add后自动调用notifyDataSetChanged()
  51.                 //如果需要指定位置,使用insert(String s, int index)方法
  52.                 setTitle(String.valueOf(list.size()));
  53.                 //在标题输出添加后list的大小
  54.             }

  55.         });
  56.         remove.setOnClickListener(new OnClickListener(){//删除按钮监听器

  57.             @Override
  58.             public void onClick(View v) {
  59.                 // TODO Auto-generated method stub
  60.                 adapter.remove(sp.getSelectedItem().toString());
  61.                 //删除当前选中项,remove后自动调用notifyDataSetChanged()
  62.                 setTitle(String.valueOf(list.size()));
  63.             }

  64.         });

  65.     }
  66. }

复制代码








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

waterxiong  

0

主题

0

听众

10

积分

白丁

  • 收听TA
  • 发消息
发表于 2012-12-6 13:24:08 |显示全部楼层
好东西,试试
回复 支持(0) 反对(0)

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

* 验证码:

插件友情推广计划插件友情推广计划插件友情推广计划

手机客户端|Archiver|127社区-师生共同的网上家园 ( 渝ICP备10016736号 )  |  

GMT+8, 2013-3-21 02:44

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部