Android程序:下拉菜单的实现(Spinner和OnItemSelectedListener)

来源:互联网 发布:94红磡 知乎 编辑:程序博客网 时间:2024/04/28 07:55

实现的效果:
这里写图片描述

MainActivity:

public class MainActivity extends Activity implements OnItemSelectedListener {    private TextView textView;    private Spinner spinner;    private List<String>list;    private ArrayAdapter<String>adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        textView = (TextView) findViewById(R.id.textView);        spinner=(Spinner) findViewById(R.id.spinner);        //1.设置数据源(使用List)        list=new ArrayList<String>();        list.add("北京");        list.add("上海");        list.add("广州");        list.add("深圳");        //2.新建数组适配器(ArrayAdatper),simple_spinner_item这个是未下拉的样式        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);        //3.adapter设置一个下拉列表(菜单)样式        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        //4.spinner加载适配器        spinner.setAdapter(adapter);        //5.设置点击事件        spinner.setOnItemSelectedListener(this);    }    @Override    public void onItemSelected(AdapterView<?> parent, View view, int position,            long id) {        //将选择的城市显示在textview中        textView.setText("你选择了:"+list.get(position));        //也可以用adapter.getItem(position),效果是一样的    }    @Override    public void onNothingSelected(AdapterView<?> parent) {    }}

main.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" >    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:textColor="#ff0000"        android:textSize="20sp" />    <Spinner        android:id="@+id/spinner"        android:layout_width="match_parent"        android:layout_height="wrap_content" /></LinearLayout>
0 0