下拉菜单Spinner用法 动态添加删除Spinner菜单项

来源:互联网 发布:adblock下载 for mac 编辑:程序博客网 时间:2024/04/25 14:33
 

复制过来不好看

 原文地址

 http://www.pocketdigi.com/20100810/20.html

 

 

 

 

Spinner是一种下接菜单,类似HTML中的select标签,点击后弹出一个对话框,显示几个供选择的选项,手机屏幕大小有限,如果都用RadioGroup单选按钮,会占用很大的空间。今天的例子最终效果如下图:

Spinner需要绑定一个适配器ArrayAdapter,将菜单项放在适配器中,添加删除菜单项只需要调用适配器的add,remove方法即可。
布局XML;

12345678910111213141516171819202122232425
<?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"    ><EditText android:id="@+id/et"android:layout_width="fill_parent"    android:layout_height="wrap_content"/><Button android:id="@+id/add"android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="添加"/><Button android:id="@+id/remove"android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="删除"/><Spinner android:id="@+id/sp"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>

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

12345
    <string-array name="action">    <item>吃饭</item>    <item>睡觉</item>    <item>上网</item>    </string-array>

JAVA程序代码:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
package com.pocketdigi.spanner; import java.util.ArrayList; import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.Spinner; public class main extends Activity {    /** Called when the activity is first created. */EditText et;Button add,remove;Spinner sp;ArrayList<String> list=new ArrayList<String>();ArrayAdapter<String> adapter;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        et=(EditText)findViewById(R.id.et);        add=(Button)findViewById(R.id.add);        remove=(Button)findViewById(R.id.remove);        sp=(Spinner)findViewById(R.id.sp);        //获取相应对象        String[]  ls=getResources().getStringArray(R.array.action);        //获取XML中定义的数组        for(int i=0;i<ls.length;i++){        list.add(ls[i]);        }        //把数组导入到ArrayList中        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        //设置下拉菜单的风格        sp.setAdapter(adapter);        //绑定适配器        sp.setPrompt("标题栏");        //设置对话框标题栏        add.setOnClickListener(new OnClickListener(){//添加按钮监听器 @Overridepublic void onClick(View v) {// TODO Auto-generated method stubadapter.add(et.getText().toString());//添加输入的项 ,add后自动调用notifyDataSetChanged()//如果需要指定位置,使用insert(String s, int index)方法setTitle(String.valueOf(list.size()));//在标题输出添加后list的大小}         });        remove.setOnClickListener(new OnClickListener(){//删除按钮监听器 @Overridepublic void onClick(View v) {// TODO Auto-generated method stubadapter.remove(sp.getSelectedItem().toString());//删除当前选中项,remove后自动调用notifyDataSetChanged()setTitle(String.valueOf(list.size()));}         });     }}
 
 
原文
   http://www.pocketdigi.com/20100810/20.html
原创粉丝点击