Android基础教程(九)之自定义下拉菜单模式----Spinner与setDropDownViewResource的应用

此篇博客为转载。转载请注明出处:Android基础教程(九)之自定义下拉菜单模式—-Spinner与setDropDownViewResource的应用

大家好,我们这一节讲一下Android下的下拉菜单Spinner,就像是Swing的Combobox,html的,由于手机画面有限,要在有限的范围选择项目,下拉菜单是比较好的选择.
Android提供的Spinner Widget的下拉菜单已经非常好用了,样式也还适用.但我们本节的Demo的重点在于自定义下拉菜单里的样式,其关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样.

Step 1: 创建一个新的Android 工程, 我们命名为SpinnerDemo .
Step 2 :打开layout 文件夹,找到main.xml 将其内容改为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   android:orientation="vertical"
   android:padding="10dip" >
    <TextView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Please select a planet:"/>
   <Spinner 
       android:id="@+id/spinner"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:drawSelectorOnTop="true"
       android:prompt="@string/planet_prompt"/>
</LinearLayout>

the Spinner’s android:prompt is a string resource. In this case, Android does not allow it to be a string, it must be a reference to a resource. So…

Step 3 :找到在res/values/string.xml,在里面加入如下(黑体)一行:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">SpinnerTest</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="planet_prompt">Choose a planet</string>
</resources>

Step 4:在res/values/文件夹下创建一个xml文件,命名为arrays.xml(我在这里命名为planet):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets">
        <item>Earth</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

这是用户可以从Spinner Widget选择list 的选择项.

Step5:打开SpinnerDemo.java,编辑内容如下:

package com.example.spinnertest;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.Spinner;


public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Spinner s = (Spinner)findViewById(R.id.spinner);
        ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.planets,android.R.layout.simple_spinner_item);      
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s.setAdapter(adapter);
    }
}

最后运行程序。
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值