码迷,mamicode.com
首页 > 移动开发 > 详细

android 开发-spinner下拉框控件的实现

时间:2015-03-10 17:07:15      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

Android提供实现下拉框功能的非常实用的控件Spinner。

  spinner控件需要向xml资源文件中添加spinner标签,如下:

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView1"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/spinner1"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="16dp"
        android:textSize="20sp"
        android:text="所选城市" />

  添加完资源控件后,在activity中,添加代码:

package com.example.android_spinner2;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MainActivity extends Activity {
    private Spinner spinner ;
    private ArrayAdapter adapter ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.spinner =(Spinner) this.findViewById(R.id.spinner1);
        //两种方式给下拉列表注册适配器
        //1 :new 适配器对象(content对象,样式ID,数据集合)
        adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_spinner_dropdown_item, getDataSource());
        spinner.setAdapter(adapter);
    }
    public List<String> getDataSource(){
        List<String> list = new ArrayList<String>() ;
        list.add("北京");
        list.add("上海");
        list.add("广州");
        list.add("长沙");
        return list  ;
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
在模拟其中运行,将得到spinner的显示效果:

技术分享

  从官方的API可知,官方提供另外一种为spiner注册适配器的方式。示例代码如下:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.spinner =(Spinner) this.findViewById(R.id.spinner1);
        //两种方式给下拉列表注册适配器
        //1 :new 适配器对象(content对象,样式ID,数据集合)
//        adapter = new ArrayAdapter<String>(this, 
//                android.R.layout.simple_spinner_dropdown_item, getDataSource());
        //2 :.createFromResource(content对象,xml中数组id,样式ID)
        adapter = ArrayAdapter.createFromResource(MainActivity.this, 
                R.array.planets_array,android.R.layout.simple_spinner_dropdown_item );
        spinner.setAdapter(adapter);
    }

  需要注意的是,第二种方式需要在string资源文件中添加数组:

   <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
    </string-array

  运行项目,同样能得到想要的下拉框列表。

  

 

android 开发-spinner下拉框控件的实现

标签:

原文地址:http://www.cnblogs.com/HEWU10/p/4326344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!