先上图。
第一步,先在layout中,写上Spinner组件。
<Spinner
android:id="@+id/Spinner01"
android:layout_width="70dp"
android:layout_height="40dp"
android:entries="@array/spinnerData"
android:prompt="@string/Please"
/>
第二步,给spinner 的item赋值,赋值有两种方式,一种是在xml中赋值,一种是在activity。后面我只讲 xml中赋值方式。
在value 的目录下创建 spinnerDate:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="spinnerData">
<item>7</item>
<item>30</item>
<item>90</item>
<item>180</item>
<item>365</item>
</string-array>
</resources>
然后,让spinner去引用它:
android:entries="@array/spinnerData"
到这一步的时候,就可以看见spinner的效果了。
但是,在实际过程中会发现,spinner每次加载的时候,都会默认执行一次。需求不同,方式不同。
为了解决这个问题,我们引入一个变量:isAutoSelect,默认是true。
见代码:
package com.example.test;
import android.os.Bundle;
import android.os.Looper;
import android.app.Activity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemSelectedListener{
boolean isAutoSelect = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.Spinner01);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View arg1, int position,
long arg3) {
// TODO Auto-generated method stub
if(isAutoSelect){
isAutoSelect = false;
}else{
String str=parent.getItemAtPosition(position).toString();//获取item的值。
Toast.makeText(getApplicationContext(), "选择: "+str, 2000).show();
// to do something...
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
这样就方便的解决了 spinner 加载时就会默认执行一次的问题。
demo下载:http://download.csdn.net/detail/u011368551/8212049
转载请注明出处:http://blog.csdn.net/u011368551/article/details/41644381