Android开发之Spinner的使用

来源:互联网 发布:电脑数据流量统计 编辑:程序博客网 时间:2024/06/05 12:04

Android提供了Spinner控件,控件看起来就是一个下拉列表,有一个下拉箭头。当点击下拉箭头,会弹出一个列表。

列表中是一个一个的条目供用户选择。


Spinner的使用

1.在布局文件中声明一个Spinner

    <Spinner     android:id="@+id/spinner"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    />

2.创建一个SpinnerAdapter适配器

// 根据资源文件创建适配器。// 参数解析:// param1:当前上下文对象。// param2:在String.xml中定义的数组的Id// param3:Android自带的布局文件的ID,用于指定Spinner显示的样式ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinnerArray,android.R.layout.simple_spinner_item);// 设置弹出的窗口中条目的样式。这个也是使用的Android自带的布局文件样式adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

3.为Spinner指定创建的适配器

spinner.setAdapter(adapter);

4.添加事件监听器

spinner.setOnItemSelectedListener(new SpinnerOnItemSelectedListener());


完整的代码:

spinner.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent">        <Spinner     android:id="@+id/spinner"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    /></LinearLayout>


Strings.xml文件的内容:

<string-array name="spinnerArray">    <item>北京</item>    <item>上海</item>    <item>广州</item>    <item>深圳</item>    <item>西安</item>    <item>武昌</item>    <item>武汉</item>    <item>南京</item>    </string-array>


Activity:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.Toast;import android.widget.AdapterView.OnItemSelectedListener;import com.and.test.R;public class SpinnerActivity extends Activity {private Spinner spinner = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(R.layout.spinner);spinner = (Spinner) findViewById(R.id.spinner);// 根据资源文件创建适配器。// 参数解析:// param1:当前上下文对象。// param2:在String.xml中定义的数组的Id// param3:Android自带的布局文件的ID,用于指定Spinner显示的样式ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinnerArray,android.R.layout.simple_spinner_item);// 设置弹出的窗口中条目的样式。这个也是使用的Android自带的布局文件样式adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner.setAdapter(adapter);spinner.setOnItemSelectedListener(new SpinnerOnItemSelectedListener());}class SpinnerOnItemSelectedListener implements OnItemSelectedListener{// adapterView:整个弹出窗口// view:当前被选中的条目// position:当前被选中的位置// id:当前被选中的条件的id@Overridepublic void onItemSelected(AdapterView<?> adapterView, View view, int position,long id) {String selectedItem = adapterView.getItemAtPosition(position).toString();Toast.makeText(SpinnerActivity.this, "你选中的是:" + selectedItem, Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {Toast.makeText(SpinnerActivity.this, "没有选中任何一项", Toast.LENGTH_SHORT).show();}}}
运行后看起来是这样:

单击右边的下拉箭头,弹出选择窗口

ArrayAdapter还可以这样创建:List<String> citys = new ArrayList<String>();citys.add("广州");citys.add("上海");citys.add("北京");citys.add("深圳");citys.add("南京");ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, citys);adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);spinner.setAdapter(adapter);spinner.setPrompt("选择一个城市");spinner.setOnItemSelectedListener(new SpinnerOnItemSelectedListener());






原创粉丝点击