package com.bw.yztc_spinner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import com.bw.yztc_imageview.R;
/**
* 演示Spinner的使用
*/
public class SpinnerActivity extends Activity {
private Spinner spinner;
private String[] plantes;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
// 获取id
spinner = (Spinner) findViewById(R.id.sp);
// 1.准备需要加载展示的数据源
plantes = getResources().getStringArray(R.array.plantes_array);
// 2.将数据源的数据加载到适配器中
adapter = new ArrayAdapter<String>(SpinnerActivity.this,
android.R.layout.simple_spinner_item, plantes);
// 3.将适配器中的数据加载到控件中
spinner.setAdapter(adapter);
// 表示当Spinner控件中item被选中时触发的监听事件
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
// item被选中时回调的方法
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String s1 = plantes[position];// 根据下标在数据源中获取
String s2 = adapter.getItem(position);// 根据下标在适配器中获取
String s3 = spinner.getItemAtPosition(position).toString();// 根据下标在spinner控件中获取
Toast.makeText(SpinnerActivity.this,
"s1=" + s1 + ",s2=" + s2 + ",s3=" + s3, 0).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Spinner
android:id="@+id/sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
values-strings下定义数组
<!-- 定义字符串类型的数组 -->
<string-array name="plantes_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>