zoukankan      html  css  js  c++  java
  • android中使用spinner组件,以key,value的方式

    接着上一篇文章的内容:android中使用spinner组件

    稍做修改,以key,value的方式,在实际使用中,经常需要获取的值并不一定跟显示的内容一致。

    需要先添加一个对象类,用来描述key,value,Pair.java:

    package com.example.chenrui.common;
    
    public class Pair {
    
        private String key;
        private String value;
    
        public Pair(String key, String value) {
            this.key = key;
            this.value = value;
        }
    
        public String getKey() {
            return key;
        }
    
        public void setKey(String key) {
            this.key = key;
        }
    
        public String getValue() {
            return value;
        }
    
        public void setValue(String value) {
            this.value = value;
        }
    
        @Override
        public String toString() {
            return value;
        }
    }

    注意上面的代码,一定要覆写toString()方法,返回的值会在spinner组件上显示,需要显示什么,就返回什么,我们这里是把text的值显示到spinner组件上。

    然后修改MainActivity.java,注意红色文字为修改的内容:

    package com.example.chenrui.app1;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.Spinner;
    import android.widget.Toast;
    
    import com.example.chenrui.common.Pair;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            final Spinner spinner = findViewById(R.id.spinner);
    
            Pair[] data = new Pair[7];
            data[0] = new Pair("1","星期一");
            data[1] = new Pair("2","星期二");
            data[2] = new Pair("3","星期三");
            data[3] = new Pair("4","星期四");
            data[4] = new Pair("5","星期五");
            data[5] = new Pair("6","星期六");
            data[6] = new Pair("7","星期日");
            ArrayAdapter<Pair> adapter = new ArrayAdapter<Pair>(this,R.layout.support_simple_spinner_dropdown_item,data);
            spinner.setAdapter(adapter);
    
            Button button1 = findViewById(R.id.button1);
            button18.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Pair pair = (Pair)spinner.getSelectedItem();
                    Toast.makeText(MainActivity.this, "key:" + pair.getKey() + ",value:" + pair.getValue(), Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

    实现效果如下:

  • 相关阅读:
    Entity Framework版本历史概览
    读书笔记—CLR via C#章节3
    读书笔记—CLR via C#章节1-2
    C#编程实践–产假方案优化版
    老调重弹--面向对象设计原则--包设计原则
    Redis(七)分布式锁
    Redis(九)高可用专栏之Sentinel模式
    Redis(九)高可用专栏之《简介篇》
    Redis(七)持久化(Persistence)
    Redis(六)管道(Pipelining)
  • 原文地址:https://www.cnblogs.com/modou/p/10249498.html
Copyright © 2011-2022 走看看