`
zkh43javaeye
  • 浏览: 85896 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

转:动态添加/删除spinner菜单--ArrlayList与Widget依赖性

阅读更多

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的依赖性

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

    动态添加删除spinner菜单

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

    spin.js 库(超棒讲解)

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

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

    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

    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" ;演示版[在页面中查看]用法 ...

    unity3d的New UI Widgets1.10.2

    - Spinner - Switch - Time Other: - Paginator - Progressbar - Sidebar - Tooltip - Style (Skins) support Interactions: - Bring to Front - Draggable - Drag and Drop support - Resizable

    vue-loaders:Vue + loaders.css

    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/ : ...

    Android 记账本源码.zip

    9. **测试**:为了确保应用的稳定性和正确性,源码中可能包含单元测试和集成测试。JUnit和Espresso是常用的Android测试框架。 10. **Android Studio集成开发环境**:这个项目可能是在Android Studio中开发的,因此...

    jQuery_EasyUI中文帮助手册(带目录)

    - 数字调节器(numberspinner):与spinner相似,但专门用于数字。 - 时间调节器(timespinner):与spinner相似,但专门用于时间。 5. 窗口(Window) - 窗口(window):创建标准的可拖动窗口。 - 对话窗口(dialog):...

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

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

    loading.zip

    在这个场景中,"jq实现等待加载转圈圈效果" 提到了使用jQuery库来创建一个可视化的加载动画,即转圈圈效果。本文将详细讲解如何使用jQuery实现这样的功能,并探讨相关技术点。 首先,jQuery是一个广泛使用的...

    angular-spinner-example:Angular 10中的Spinner示例,Bootstrap和Font很棒

    微调器 Angular 10,Bootstrap和Font-awsome中的...import { SpinnerModule } from "./shared/spinner/spinner.module" ; @ NgModule ( { imports : [ // ... SpinnerModule , ] , schemas : [ ] , } ) export c

    Android开发入门书籍

    - Spinner与Adapter **2.7 列表的高级应用(Chapter 13: Getting Fancy with Lists)** - **知识点:** - ListView与Adapter模式 - RecyclerView与ViewHolder模式 - 数据绑定与动态加载 **2.8 更多控件和容器...

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

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

    bubble-shooter

    受Bubble Spinner启发的浏览器中JavaScript游戏(请参见下面的链接)。 指示 要安装依赖项: $ npm install 启动开发服务器: $ npm start 服务器运行后,您可以访问: ...

    spinner下拉框

    在布局XML文件中,我们可以通过`&lt;Spinner&gt;`标签来添加Spinner控件,如下所示: ```xml &lt;Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" ...

    前端开源库-chalk-cli-spinner

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

Global site tag (gtag.js) - Google Analytics