如何拿到Spinner的当前值,并实时传递至TextView中显示

如何拿到Spinner的当前值,并实时传递至TextView中显示

http://blog.csdn.net/watermusicyes/article/details/25723331

 

原创 2014年05月13日 16:56:34

下午项目中,要用到这个东西:

拿到Spinner的当前值,并把拿到的值,实时传递给TextView,然后,显示在TextView当中。

布局文件是这样的:

 

[html] view plain copy
 
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical"  
  6.      >  
  7.   
  8.     <Spinner   
  9.         android:id="@+id/spinner"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="40dp"  
  12.         android:entries="@array/tools"  
  13.         />  
  14.       
  15.     <View   
  16.         android:layout_width="match_parent"  
  17.         android:layout_height="50dp"  
  18.         />  
  19.     <TextView   
  20.         android:id="@+id/txt01"  
  21.         android:layout_width="match_parent"  
  22.         android:layout_height="40dp"  
  23.         android:text="hello world"  
  24.         />  
  25. </LinearLayout>  

后来,经过黄老尸指点,终于找到了解决方案:

1、给Spinner添加一个监听器;

2、点击Spinner,选择值后,直接把 选中的值,设置为TextView的值。

整体代码如下:

 

[java] view plain copy
 
  1. package com.zhanggeng.spinnertest;  
  2.   
  3.   
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. import android.view.Menu;  
  7. import android.view.View;  
  8. import android.widget.AdapterView;  
  9. import android.widget.AdapterView.OnItemSelectedListener;  
  10. import android.widget.Spinner;  
  11. import android.widget.TextView;  
  12.   
  13. public class MainActivity extends Activity {  
  14.   
  15.     private Spinner  sp;  
  16.     private TextView tv;  
  17.     private String str;  
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.activity_main);  
  22.           
  23.         sp = (Spinner) findViewById(R.id.spinner);  
  24.         tv = (TextView) findViewById(R.id.txt01);  
  25.         str = (String) sp.getSelectedItem();  
  26.         sp.setOnItemSelectedListener(new OnItemSelectedListener() {  
  27.   
  28.             @Override  
  29.             public void onItemSelected(AdapterView<?> parent, View view,  
  30.                     int position, long id) {  
  31.                   
  32.                 //拿到被选择项的值  
  33.                 str = (String) sp.getSelectedItem();  
  34.                 //把该值传给 TextView  
  35.                 tv.setText(str);  
  36.             }  
  37.   
  38.             @Override  
  39.             public void onNothingSelected(AdapterView<?> parent) {  
  40.                 // TODO Auto-generated method stub  
  41.                   
  42.             }  
  43.         });  
  44.     }  
  45.   
  46. }  

在解决这个问题时,我碰到的问题:

1、我不知道,给Spinner添加的监听器,是哪个?习惯了用,View , DialogInterface 中的监听器,突然间要添加一个 OnItemSelectedListener 不知道在哪个包里!

事实上在这里:import android.widget.AdapterView.OnItemSelectedListener;

2、不知道,怎么去,拿当前值,后来在网上,查找后,发现有个 getSeletedItem() 方法,加上后,就OK了!

 
posted @ 2018-02-10 00:48  sky20080101  阅读(284)  评论(0)    收藏  举报