2011-10-18 11:38 
蓝之风 
阅读(9864
评论(1
编辑 
收藏 
举报

在Mobile下面实现Text和value非常简单,在控件DorpdownList中为我们已经做好了,直接就可以拿到text和value的值,那么在android下面应该怎么获取Text和Value的…

在Mobile下面实现Text和value非常简单,在控件DorpdownList中为我们已经做好了,直接就可以拿到text和value的值,那么在android下面应该怎么获取Text和Value的值呢?一般有两种思路:

1、通过自定义数据源的方式来实现获取Text和value的值;

2、通过自定义Adapter的方式来实现获取Text和value的值。

本文将通过第一种方式来实现获取Text和value的值,以及通过value来绑定spinner中选中的值。

 

首先定义spinner的数据结构如下:

  1. /**
  2. * @author xushilin
  3. * xsl xushilin@kingtoneinfo.com
  4. * @version: 创建时间:2011-10-18 上午11:12:06
  5. * 说 明: Spinner数据源的结构
  6. * 修改历史:
  7. */
  8. public class SpinnerData {
  9.  
  10. private String value = "";
  11. private String text = "";
  12.  
  13. public SpinnerData() {
  14. value = "";
  15. text = "";
  16. }
  17.  
  18. public SpinnerData(String _value, String _text) {
  19. value = _value;
  20. text = _text;
  21. }
  22.  
  23. @Override
  24. public String toString() {
  25.  
  26. return text;
  27. }
  28.  
  29. public String getValue() {
  30. return value;
  31. }
  32.  
  33. public String getText() {
  34. return text;
  35. }
  36. }

上面的结构包含两个属性,value保存的是值,text保存显示给用户的数据。

下面创建spinner的数据实例并绑定到spinner上:

  1. private void Bind() {
  2. List<SpinnerData> lst = new ArrayList<SpinnerData>();
  3. for (int i = 0; i < 10; i++) {
  4. SpinnerData c = new SpinnerData(i + "", "显示值" + i);
  5. lst.add(c);
  6. }
  7. ArrayAdapter<SpinnerData> Adapter = new ArrayAdapter<SpinnerData>(this,
  8. android.R.layout.simple_spinner_item, lst);
  9. Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  10. sp.setAdapter(Adapter);
  11. }

在onCreate()获取界面上的实例控件并调用上面的Bind()方法。运行得到下图:

image

点击点击获取值按钮得到value和text如下图:

image

点击回显按钮spinner将选中value=5的text如下图:

image 

全部代码:

  1. /**
  2. *
  3. */
  4. package com.demo.list;
  5.  
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import android.app.Activity;
  10. import android.os.Bundle;
  11. import android.view.View;
  12. import android.view.View.OnClickListener;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.Button;
  15. import android.widget.Spinner;
  16. import android.widget.Toast;
  17.  
  18. import com.demo.HelloWorld.R;
  19.  
  20. /**
  21. * @author xsl xsl xushilin@kingtoneinfo.com
  22. * @version: 创建时间:2011-9-21 上午09:56:43 说 明: 修改历史:
  23. */
  24. public class SpinnerSelectValue extends Activity implements OnClickListener {
  25. private Spinner sp;
  26. private Button btnGetValue,btnSetValue;
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.spinner_select_value);
  31. sp = (Spinner) findViewById(R.id.spinner1);
  32. btnGetValue=(Button)findViewById(R.id.btnGetValue);
  33. btnGetValue.setOnClickListener(this);
  34. btnSetValue=(Button)findViewById(R.id.btnSetValue);
  35. btnSetValue.setOnClickListener(this);
  36. Bind();
  37. }
  38.  
  39. private void Bind() {
  40. List<SpinnerData> lst = new ArrayList<SpinnerData>();
  41. for (int i = 0; i < 10; i++) {
  42. SpinnerData c = new SpinnerData(i + "", "显示值" + i);
  43. lst.add(c);
  44. }
  45. ArrayAdapter<SpinnerData> Adapter = new ArrayAdapter<SpinnerData>(this,
  46. android.R.layout.simple_spinner_item, lst);
  47. Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  48. sp.setAdapter(Adapter);
  49. }
  50.  
  51. /**
  52. * @author xushilin
  53. * xsl xushilin@kingtoneinfo.com
  54. * @version: 创建时间:2011-10-18 上午11:12:06
  55. * 说 明: Spinner数据源的结构
  56. * 修改历史:
  57. */
  58. public class SpinnerData {
  59.  
  60. private String value = "";
  61. private String text = "";
  62.  
  63. public SpinnerData() {
  64. value = "";
  65. text = "";
  66. }
  67.  
  68. public SpinnerData(String _value, String _text) {
  69. value = _value;
  70. text = _text;
  71. }
  72.  
  73. @Override
  74. public String toString() {
  75.  
  76. return text;
  77. }
  78.  
  79. public String getValue() {
  80. return value;
  81. }
  82.  
  83. public String getText() {
  84. return text;
  85. }
  86. }
  87.  
  88. public void onClick(View v) {
  89. switch(v.getId()){
  90. case R.id.btnGetValue:
  91. String s="value="+((SpinnerData)sp.getSelectedItem()).getValue() +" && Text="+((SpinnerData)sp.getSelectedItem()).getText();
  92. Toast.makeText(this, s, Toast.LENGTH_LONG).show();
  93. break;
  94. case R.id.btnSetValue:
  95. @SuppressWarnings("unchecked")
  96. ArrayAdapter<SpinnerData> lst=(ArrayAdapter<SpinnerData>)sp.getAdapter();
  97. for(int i=0;i<lst.getCount();i++){
  98. if(lst.getItem(i).getValue().equalsIgnoreCase("5")){
  99. sp.setSelection(i);
  100. break;
  101. }
  102. }
  103. break;
  104. }
  105. }
  106. }

版权声明:本文为vaiyanzi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/vaiyanzi/archive/2011/10/18/2216271.html