***Spinner的使用
*定义:Spinner表现为一种列表,主要作用是让用户进行选择
*使用方式:
方式一:xml文件中定义加载的数据资源,通过ArrayAdapter.creatFromResource()方法加载资源
方式二:Java代码中使用Adapter对象,把List
*使用步骤:
1.准备需要加载展示的数据源
2.将数据源中的数据加载到适配器中
3.将适配器中的数据加载到控件中
values文件夹的Strings.xml文件中添加数据源:
<resources>
<string name="app_name">SpinnerDemo</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<!--相当于定义了一个字符串数组,数组名是fruit_array -->
<string-array name = "fruits_array">
<item >苹果</item>
<item >香蕉</item>
<item >橘子</item>
<item >菠萝</item>
<item >哈密瓜</item>
<item >火龙果</item>
</string-array>
</resources>
Java代码中:
public class MainActivity extends Activity {
private Spinner spinner;
private ArrayAdapter<String> adapter;
private String[] fruits;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner) findViewById(R.id.sp);
fruits = getResources().getStringArray(R.array.fruits_array);
/* ArrayAdapter构造参数说明:
* context:上下文对象
* resource:表示列表item的布局资源id
* objects:表示加载的数据源
*/
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, fruits);
spinner.setAdapter(adapter);
//设置当spinner控件中的item被选中时触发的监听事件
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
/*表示当spinner控件中的item被选中时的回调方法
* AdapterView<?> parent:表示当前触发事件的适配器控件对象spinner
* View view:表示当前被选中的item的对象
* int position:表示被选中的item的下标
* long id:表示当前被选中的item的id
*/
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String s1 = fruits[position];//在数据源中获取
String s2 = adapter.getItem(position);//根据下标在适配器中获取
String s3 = spinner.getItemAtPosition(position).toString();//根据下标在spinner中获取
Toast.makeText(MainActivity.this, "s1="+s1+"s2="+s2+"s3="+s3, Toast.LENGTH_SHORT).show();
}
//当没有任何选中时回调的方法
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
}