spinner实现下拉列表中选择项目

时间:2022-04-13 10:12:24

今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,

下面演示一下Spinner的使用使ArrayAdapter实现

使用ArrayAdapter进行适配数据:

1,spinner_layout.xml的一个布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <Spinner 
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:spinnerMode="dropdown" />
</LinearLayout>
这里需要注意这个Spinner中的这个spinnerMode属性有dropdown和dialog两个属性选项

spinner实现下拉列表中选择项目
2,建立源数据建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:

<string-array name="value">
     <item >zhangvalue</item>
     <item>value</item>
     <item>eulav</item>
     <item>eulav_ing</item>
     <item>value_ing</item>
 </string-array>
3, 接着在Activity中加入如下的代码( 使用了系统定义的下拉列表的布局文件,当然也可以自定义 )

 spinner = (Spinner) findViewById(R.id.spinner);//初始化控件
  String[] value = getResources().getStringArray(R.array.value);//建立数据源
  ArrayAdapter   adapter =  new ArrayAdapter(//建立adapter并绑定数据源
		  this,
		  android.R.layout.simple_list_item_1,
		  android.R.id.text1,
		  value
		  );
  spinner.setAdapter(adapter);//绑定adapter到spinner控件上
效果图如下 spinner实现下拉列表中选择项目spinner实现下拉列表中选择项目spinner实现下拉列表中选择项目


注意就是这个前两张效果图就是spinner的spinnerMode属性有dropdown和dialog,第三张图片就是给它item添加了事件

添加事件的代码如下:

 spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int position,
			long id) {
		// TODO Auto-generated method stub
		String str = parent.getItemAtPosition(position).toString();
		Toast.makeText(SpinnerActivity.this, "你确定选择的是"+str, 500).show();
	}

	@Override
	public void onNothingSelected(AdapterView<?> parent) {
		// TODO Auto-generated method stub
		
	}
});
这里注意这spinner给它设置这个 是
OnItemSelectedListener的而不是<pre name="code" class="html" style="color: rgb(85, 85, 85); font-size: 18px; line-height: 35px;">OnItemClickListener不然就会报错,显示如下:<img src="https://img-blog.csdn.net/20151029114500895?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />