package irdc.ex04_09;
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;
import java.util.ArrayList;
import java.util.List;
public class EX04_09 extends Activity
{
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;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* 载入main.xml Layout */
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_dropdown_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 arg0)
{
String newCountry = myEditText.getText().toString();
/* 比较值是否已经存在,不存在再添加 */
for (int i = 0; i < adapter.getCount(); i++)
{
if (newCountry.equals(adapter.getItem(i)))
{
return;
}
}
if (!newCountry.equals(""))
{
/* 重要的方:将值添加进adapters*/
adapter.add(newCountry);
/* 取得添加值的位子 */
int position = adapter.getPosition(newCountry);
/* 将spinner指定在添加的位子 */
mySpinner.setSelection(position);
/* 将myEditText清空 */
myEditText.setText("");
}
}
});
/* 将myButton_remove添加OnClickListener */
myButton_remove.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
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)
{
}
});
}
}
分享到:
相关推荐
本主题将深入探讨如何在Android应用中动态地添加和删除Spinner菜单,以及ArrayList和Widget之间的依赖关系。 一、Spinner的基础知识 Spinner是Android SDK中的一个视图组件,继承自AdapterView,它可以通过一个...
要实现动态添加菜单项,可以创建一个新的菜单项字符串,然后添加到适配器的末尾。例如: ```java String newItem = "新添加的选项"; ArrayAdapter<String> adapter = (ArrayAdapter) spinner.getAdapter(); adapter...
className: 'spinner', // The CSS class to assign to the spinner zIndex: 2e9, // The z-index (defaults to 2000000000) top: 'auto', // Top position relative to parent in px left: 'auto' // Left ...
与第三方组件兼容,并与可选内置组件包装在一起Spinner仅1.5KB缩小并压缩为ESM,CommonJS,UMD版本安装npm install --save vue-promise-btn快速入门:使用vue导入和“握手”插件从'vue'导入Vue从'vue-promise-btn...
Spinner是Android系统中的一种常见控件,用于展示一个下拉选择菜单。在用户交互时,它通常以一个简短的文本表示,当点击后会展开一个列表供用户选择。这个"Spinner下拉菜单"的主题主要涉及到如何自定义Spinner的XML...
资源分类:Python库 所属语言:Python 资源全名:click_spinner-0.1.5-py2.7.egg 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
用途及功能: https://github.com/joarhem/Matlab-Loading-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" ;演示版[在页面中查看]用法 ...
- Spinner - Switch - Time Other: - Paginator - Progressbar - Sidebar - Tooltip - Style (Skins) support Interactions: - Bring to Front - Draggable - Drag and Drop support - Resizable
Vue装载机 + vueNPM $ npm install -S vue-loadersCDN umd: : esm / mjs: ://unpkg.com/vue-loaders/dist/vue-loaders.esm.js umd: https://unpkg.com/vue-loaders/dist/loaders/ : ...
9. **测试**:为了确保应用的稳定性和正确性,源码中可能包含单元测试和集成测试。JUnit和Espresso是常用的Android测试框架。 10. **Android Studio集成开发环境**:这个项目可能是在Android Studio中开发的,因此...
- 数字调节器(numberspinner):与spinner相似,但专门用于数字。 - 时间调节器(timespinner):与spinner相似,但专门用于时间。 5. 窗口(Window) - 窗口(window):创建标准的可拖动窗口。 - 对话窗口(dialog):...
在Android开发中,Spinner是一种常见的UI组件,它用于在下拉菜单中展示一系列选项供用户选择。本教程将深入探讨如何实现一个自定义的Spinner,该Spinner是通过结合TextView和Dialog来创建的,以提供更灵活和个性化的...
在这个场景中,"jq实现等待加载转圈圈效果" 提到了使用jQuery库来创建一个可视化的加载动画,即转圈圈效果。本文将详细讲解如何使用jQuery实现这样的功能,并探讨相关技术点。 首先,jQuery是一个广泛使用的...
微调器 Angular 10,Bootstrap和Font-awsome中的...import { SpinnerModule } from "./shared/spinner/spinner.module" ; @ NgModule ( { imports : [ // ... SpinnerModule , ] , schemas : [ ] , } ) export c
- Spinner与Adapter **2.7 列表的高级应用(Chapter 13: Getting Fancy with Lists)** - **知识点:** - ListView与Adapter模式 - RecyclerView与ViewHolder模式 - 数据绑定与动态加载 **2.8 更多控件和容器...
角宝叠加旋转器 当绑定为真时,将微调器添加到... 将treasure-overlay-spinner添加为角度模块依赖项 用法 angular . module ( 'example' , [ 'treasure-overlay-spinner' ] ) ; angular . module ( 'example' ) . run
受Bubble Spinner启发的浏览器中JavaScript游戏(请参见下面的链接)。 指示 要安装依赖项: $ npm install 启动开发服务器: $ npm start 服务器运行后,您可以访问: ...
在布局XML文件中,我们可以通过`<Spinner>`标签来添加Spinner控件,如下所示: ```xml <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" ...
这个库结合了 `chalk` 和 `cli-spinner` 的优点,不仅能够创建动态的视觉反馈,还能通过 `chalk` 提供多彩的颜色支持,使得输出的提示信息更加醒目和友好。 **chalk** `chalk` 是一个流行的 JavaScript 库,用于为...