spinner 下拉列表

来源:互联网 发布:解压缩软件下载 编辑:程序博客网 时间:2024/06/05 07:34

      实现spinner下拉列表的demo。

demo:下载地址


MainAvtivity.java:

package fk.androiddemo_017;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 java.util.ArrayList;import java.util.List;//1,布局文件中声明//2,values/strings中声明数据源数组(spinner2不需要)//3,创建ArrayAdapter对象//4,得到spinner对象,设置数据//5,设置监听器public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {    Spinner spinner;    Spinner spinner2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        spinner=(Spinner)findViewById(R.id.spinner);        spinner2=(Spinner)findViewById(R.id.spinner2);        //用createFromResource创建一个ArrayAdapter<>对象(上下文,数据源,未展开spinner的布局)        ArrayAdapter<CharSequence> adapter= ArrayAdapter.createFromResource(                this, R.array.planets_array, android.R.layout.simple_spinner_item);        //设置spinner展开后每一条item的布局        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        //spinner标题        spinner.setPrompt("行星");        //添加适配器        spinner.setAdapter(adapter);        //设置监听器        spinner.setOnItemSelectedListener(this);        //这个spinner的数据采用代码内加载        List<String> list=new ArrayList<>();        list.add("bobo");        list.add("lili");        //(上下文,展开item每一条目的布局,条目ID,数据源)        ArrayAdapter adapter2=new ArrayAdapter(                this,R.layout.item,R.id.textViewId,list);        spinner2.setAdapter(adapter2);        spinner2.setPrompt("名字");    }    @Override    //注意创建spinner时会默认选中item0,即第一个item,并且会执行这条语句    //只有当选择的子条目与现在的子条目不同时才会调用    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {        String selected=parent.getItemAtPosition(position).toString();        System.out.println(selected);    }    @Override    //没有选中时调用,实际上根本不会被调用    public void onNothingSelected(AdapterView<?> parent) {        System.out.println("Nothing selected");    }}

布局文件:

<LinearLayout    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    xmlns:android="http://schemas.android.com/apk/res/android">    <!--下面一句确定整个打开的spinner样式-->    <Spinner android:spinnerMode="dialog"        android:id="@+id/spinner"        android:layout_marginTop="25dp"        android:layout_width="match_parent"        android:layout_height="wrap_content"/>    <Spinner        android:spinnerMode="dialog"        android:id="@+id/spinner2"        android:layout_marginTop="25dp"        android:layout_width="match_parent"        android:layout_height="wrap_content"/></LinearLayout>

子条目布局文件:

<?xml version="1.0" encoding="utf-8"?><!--用于spinner2--><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/textViewId"        android:layout_width="match_parent"        android:layout_height="wrap_content"/></LinearLayout>

strings.xml 常量:

<resources>    <string name="app_name">AndroidDemo_017</string>    <!--为spinner提供数据源-->    <string-array name="planets_array">        <item>Earth</item>        <item>Mars</item>        <item>Venus</item>        <item>Saturn</item>        <item>Uranus</item>    </string-array></resources>

运行截图:



1 0
原创粉丝点击