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(); } }); } }
实现效果如下: