`
jk138
  • 浏览: 153471 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

4.9 动态添加/删除的Spinner菜单--ArrayLi与Widget的依赖性

阅读更多

package com.chaowen;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class Ex04_09_add_Spinner extends Activity {
    /** Called when the activity is first created. */
	private static final String[] countriesStr={"北京","上海","天津","重庆"};
	private TextView myTextView;
	private EditText myEditText;
	private Button myButton_add;
	private Button myButton_remove;
	private Spinner mySpinner;
	private ArrayAdapter<String> adapter;
	private List<String> allCountries;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        allCountries=new ArrayList<String>();
        for (int i = 0; i < countriesStr.length; i++) {
			allCountries.add(countriesStr[i]);
		}
        
        
        //new ArrayAdapter对象并将allCountries传入
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,allCountries);
        
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        
        //以findViewById()取得对象
        myTextView=(TextView)findViewById(R.id.myTextView);
        myEditText=(EditText)findViewById(R.id.myEditText);
        myButton_add=(Button)findViewById(R.id.myButton_add);
        myButton_remove=(Button)findViewById(R.id.myButton_remove);
        mySpinner=(Spinner)findViewById(R.id.mySpinner);
        
        
        //将ArrayAdapter添加Spinner对象中
        mySpinner.setAdapter(adapter);
        
        //将myButton_add添加OnClickListener
        myButton_add.setOnClickListener(new Button.OnClickListener(){
        	
			@Override
			public void onClick(View v) {
				String newCountry=myEditText.getText().toString();
	        	//先比较添加的值是否已存在,不存在才可添加
	        	for (int i = 0; i < adapter.getCount(); i++) {
					if(newCountry.equals(adapter.getItem(i))){
						return;
					}
				}

			    if(!newCountry.equals("")){
			    	//将值添加至adapter
			    	adapter.add(newCountry);
			    	//取得添加的值的位置
			    	int position=adapter.getPosition(newCountry);
			    	mySpinner.setSelection(position);
			    	//将myEditText清空
			    	myEditText.setText("");
			    	
			    }	
			}
        });
        
        
        //将myButton_remove添加OnClickListener
        myButton_remove.setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View v) {
                if(mySpinner.getSelectedItem()!=null){
                	//删除mySpinner的值
                	adapter.remove(mySpinner.getSelectedItem().toString());
                	//将myEditText清空
                	myEditText.setText("");
                	if(adapter.getCount()==0){
                		//将myTextView清空
                		myTextView.setText("");
                		
                	}
                }  
			}
        	
        });
        
        
        //将mySpinner添加OnItemSelectedListener
        mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
			     //将所选mySpinner的值带入myTextView中
				myTextView.setText(arg0.getSelectedItem().toString());
				
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
			}
        	
        });
    }
}

  main.xml

 <?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"
  android:background="@drawable/white"
  >
  <TextView  
  android:id="@+id/myTextView"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:text="@string/title"
  android:textColor="@drawable/black"
  >
  </TextView>
  <EditText
  android:id="@+id/myEditText"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"  
  >
  </EditText>
  <Button
  android:id="@+id/myButton_add"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"  
  android:text="新增"    
  >
  </Button>
  <Button  
  android:id="@+id/myButton_remove"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" 
  android:text="移除"   
  >
  </Button>
  <Spinner 
  android:id="@+id/mySpinner"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"  
  >
  </Spinner>
  
  
</LinearLayout>

   

 
  • 大小: 15.8 KB
分享到:
评论

相关推荐

    android 动态添加删除的Spinner菜单 ArrayList与Widget的依赖性

    本主题将深入探讨如何在Android应用中动态地添加和删除Spinner菜单,以及ArrayList和Widget之间的依赖关系。 一、Spinner的基础知识 Spinner是Android SDK中的一个视图组件,继承自AdapterView,它可以通过一个...

    动态添加删除spinner菜单

    要实现动态添加菜单项,可以创建一个新的菜单项字符串,然后添加到适配器的末尾。例如: ```java String newItem = "新添加的选项"; ArrayAdapter&lt;String&gt; adapter = (ArrayAdapter) spinner.getAdapter(); adapter...

    angular-treasure-overlay-spinner:绑定为真时,向元素添加微调器

    角宝叠加旋转器 当绑定为真时,将微调器添加到... 将treasure-overlay-spinner添加为角度模块依赖项 用法 angular . module ( 'example' , [ 'treasure-overlay-spinner' ] ) ; angular . module ( 'example' ) . run

    自定义Spinner--利用TextView以及Dialog组合

    在Android开发中,Spinner是一种常见的UI组件,它用于在下拉菜单中展示一系列选项供用户选择。本教程将深入探讨如何实现一个自定义的Spinner,该Spinner是通过结合TextView和Dialog来创建的,以提供更灵活和个性化的...

    joarhem/Matlab-Loading-Spinner:用于 Matlab GUI 的轻量级旋转图形-matlab开发

    用途及功能: https://github.com/joarhem/Matlab-Loading-Spinner

    react-loader-spinner:React Spinner的集合集,用于异步操作

    安装使用NPM:$ npm install react-loader-spinner --save使用纱$ yarn add react-loader-spinner导入所需CSS import "react-loader-spinner/dist/loader/css/react-spinner-loader.css" ;演示版[在页面中查看]用法 ...

    android中的spinner动态加载内容

    在Android开发中,Spinner是一个非常常见的控件,它通常用于实现下拉选择菜单的效果,能够为用户提供简洁的交互体验。本篇文章将详细讲解如何在Android中动态加载Spinner的内容,同时结合"源码"和"工具"这两个标签,...

    angular-simple-spinner:用于简单角度加载微调器的自定义指令

    script src =" bower_components/angular-simple-spinner/angular_simple_spinner.js " &gt; &lt;/ script &gt; &lt; link rel =" stylesheet " href =" bower_components/angular-simple-spinner/angular-simple...

    Vue.js插件,用于处理按钮异步锁定状态。 演示:https://stukh.github.io/vue-promise-btn/-JavaScript开发

    与第三方组件兼容,并与可选内置组件包装在一起Spinner仅1.5KB缩小并压缩为ESM,CommonJS,UMD版本安装npm install --save vue-promise-btn快速入门:使用vue导入和“握手”插件从'vue'导入Vue从'vue-promise-btn...

    Spinner下拉菜单

    Spinner是Android系统中的一种常见控件,用于展示一个下拉选择菜单。在用户交互时,它通常以一个简短的文本表示,当点击后会展开一个列表供用户选择。这个"Spinner下拉菜单"的主题主要涉及到如何自定义Spinner的XML...

    Android-react-native-loading-spinner-overlay.zip

    Android-react-native-loading-spinner-overlay.zip,反应本机加载微调器覆盖,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Python库 | click_spinner-0.1.5-py2.7.egg

    资源分类:Python库 所属语言:Python 资源全名:click_spinner-0.1.5-py2.7.egg 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    修改spinner字体大小及颜色,还有列表样式

    &lt;style name="SpinnerDropdownTheme" parent="Widget.AppCompat.Spinner.DropDown"&gt; &lt;!-- 修改下拉列表背景 --&gt; &lt;item name="android:popupBackground"&gt;@drawable/dropdown_background&lt;/item&gt; &lt;!-- 修改下拉列表...

    spinner代码

    &lt;style name="CustomSpinnerStyle" parent="Widget.AppCompat.Spinner"&gt; &lt;item name="android:background"&gt;@drawable/custom_spinner_background&lt;/item&gt; &lt;item name="android:textColor"&gt;@color/custom_text_color...

    Android Spinner

    &lt;style name="CustomSpinnerStyle" parent="Widget.AppCompat.Spinner"&gt; &lt;item name="android:background"&gt;@drawable/custom_spinner_background&lt;/item&gt; &lt;/style&gt; &lt;!-- custom_spinner_background.xml --&gt; ...

    Android 省市区三级连动--spinner-IT计算机-毕业设计.zip

    Spinner是Android提供的一个下拉选择控件,用户可以点击它来展示一个下拉菜单,通常用于展示有限的选项列表。在本项目中,Spinner用于展示省、市、区三个级别的列表。 1. 数据结构设计: - 省市区数据通常存储在...

    Android Studio自定义Spinner背景图及代码文件

    在Android开发中,Spinner是一个非常常用的控件,它允许用户从一组预定义的选项中进行选择,类似于下拉菜单。本教程将详细讲解如何在Android Studio中为Spinner自定义背景图,并提供相应的代码示例。 首先,我们...

    前端开源库-chalk-cli-spinner

    这个库结合了 `chalk` 和 `cli-spinner` 的优点,不仅能够创建动态的视觉反馈,还能通过 `chalk` 提供多彩的颜色支持,使得输出的提示信息更加醒目和友好。 **chalk** `chalk` 是一个流行的 JavaScript 库,用于为...

    react-spinner:基于Material-UI加载微调器

    import Spinner from '@flatlinediver/react-spinner' ; export default = ( { data } ) =&gt; ( { data . length ? &lt; div&gt; Mapped data &lt; / div &gt; : &lt; Spinner&gt; } ) 使用悬念的例子 import React from 'react' ...

    vue-product-spinner:V Vue.js的3D产品微调器,没有依赖项

    Vue.js缺少的产品微调器。 现场演示 在CodeSandbox上尝试! 安装 npm npm i vue-product-spinner 纱 yarn add vue-product-spinner ...VueProductSpinner将允许您添加任何组件以处理图像预取时间。

Global site tag (gtag.js) - Google Analytics