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();
            }
        });
    }
}

实现效果如下:

原文地址:https://www.cnblogs.com/modou/p/10249498.html