用ArrayAdapter来创建Spinner(自定义布局、默认布局、动态内容、静态内容)

    

   

android:dropDownWidth         下拉列表宽度
android:dropDownHorizontalOffset   下拉列表距离左边的距离
android:dropDownVerticalOffset       下拉菜单和文本之间的垂直偏移量
android:popupBackground         下拉列表中的背景色

android:prompt              下拉列表中的提示信息(基本没用了)

MainActivity.java

package com.kale.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity {

    Spinner spinner01,spinner02,spinner03;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewInit();
        String []arr = {"JAVA","Android","xml","ios"};

        //采用android提供的布局来创建
        ArrayAdapter<String> adapter01 = new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_multiple_choice,arr);
        spinner01.setAdapter(adapter01);
        //监听器
        spinner01.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View arg1,
                    int position, long id) {
                // TODO 自动生成的方法存根
                String selected = adapterView.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), selected, 0).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });

//------------------------------------------------------------------------------

        //默认的布局文件设置spinner的样式,用写死的数据来创建的。不是很推荐
        ArrayAdapter<CharSequence> adapter02 = ArrayAdapter.createFromResource(this,
                R.array.item, android.R.layout.simple_spinner_item);
        //设置spinner点开后下拉菜单的样式
        adapter02.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner02.setAdapter(adapter02);
        //spinner02.setPrompt("test");//设置提示文字,现在的界面中已经不显示了。所以可以说是没用了

//------------------------------------------------------------------------------
        //采用动态的数据,布局文件是自己定义的item
        ArrayAdapter<String> adapter03 = new ArrayAdapter<>(this, R.layout.item,
                R.id.textView_id, arr);
        spinner03.setAdapter(adapter03);
    }
    private void viewInit() {
        spinner01 = (Spinner) findViewById(R.id.spinner01_id);
        spinner02 = (Spinner) findViewById(R.id.spinner02_id);
        spinner03 = (Spinner) findViewById(R.id.spinner03_id);
    }
}

activity_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="16dp">

    <!--
    android:dropDownWidth                  下拉列表宽度
    android:dropDownHorizontalOffset    下拉列表距离左边的距离
    android:dropDownVerticalOffset      下拉菜单和文本之间的垂直偏移量
    android:popupBackground              下拉列表中的背景色
    android:prompt                         下拉列表中的提示信息

     -->

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用代码填充数据的spinner(用android自带的布局)"
        android:layout_marginTop="16dp"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        android:id="@+id/spinner01_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:popupBackground="#ade9ee"
        android:dropDownVerticalOffset="3dp"
         android:prompt="@string/hello_world"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="数据写到array中的spinner(用android提供的布局)"
        android:layout_marginTop="26dp"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        android:id="@+id/spinner02_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:dropDownVerticalOffset="3dp"
         android:prompt="@string/hello_world"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用自定义布局并动态填入数据的spinner"
        android:layout_marginTop="26dp"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        android:id="@+id/spinner03_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>    

 </LinearLayout>

item.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"
    android:padding="8dp">

    <TextView
        android:id="@+id/textView_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textColor="#0000ff"
        android:gravity="center_horizontal"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

用ArrayAdapter来创建Spinner(自定义布局、默认布局、动态内容、静态内容),布布扣,bubuko.com

时间: 2024-10-26 23:36:29

用ArrayAdapter来创建Spinner(自定义布局、默认布局、动态内容、静态内容)的相关文章

Customize the View Items Layout 自定义视图项目布局

In this lesson, you will learn how to customize the default editor layout in a Detail View. For this purpose, the Contact Detail View will be used. 在本课中,您将学习如何在详细视图中自定义默认编辑器布局.为此,将使用"联系人详细信息"视图. Note 注意 Before proceeding, take a moment to review

Android调试大法 自定义IDE默认签名文件

版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com Android调试大法之自定义IDE默认签名文件,你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在debug时第三方功能测试通过,而release时无法使用? 如果你没有遇到我说的问题,那么我举几个例子. 微信支付.微信登录.微信分享,debug时调试通过,release时调不起微信? 如果你没做过,你可以看这篇文章微信登录.微信分享教程. 百度地图.高德地图,要

创建slidingMenu自定义菜单

创建slidingMenu自定义菜单. 1.继承activity,通过创建 SlidingMenu slidingMenu=new SlidingMenu(this)获取滑动     菜单.         实例:    1).左菜单    package com.zhy.zhy_slidemenu_demo;    public class MainActivity extends Activity    {        @Override        protected void onC

整理 PHPstorm实用个人配置,修改调整个性化快捷键,修改使用phpstorm创建的模板的默认注释:

对你有助请点赞,请顶------送人玫瑰,手留余香! 1:58 2016/3/12 整理PHPstorm实用个人配置,修改调整个性化快捷键,修改使用phpstorm创建的模板的默认注释: PHPstorm配置:修改使用phpstorm创建的模板的默认注释 注意:我的也是phpstorm 10,但是配置的位置与下面参见的文章中描述的有所不同: 位置: 主要在一下两个路径: File | Settings | Appearance & Behavior | Appearance File | Set

android studio开发教程 ListActivity的2种使用方法:系统默认布局和自己定义布局

看了视频和百度的资料,自己摸索了下. 第一种:系统默认布局 第二种:使用自定义布局 自己演示了看看吧

Android自定义Dialog及其布局

 实际项目开发中默认的Dialog无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中,才能在Activity中通过 dialog.findviewbyid 获取到控件,否则返回null. public class LogoutDialog extends Dialog{ Context context; public LogoutDialog(Context context) { sup

android自定义View&amp;&amp;简单布局&amp;&amp;回调方法

一.内容描述 根据“慕课网”上的教程,实现一个自定义的View,且该View中使用自定义的属性,同时为该自定义的View定义点击事件的回调方法. 二.定义自定义的属性 在res/valus/ 文件夹下创建一个 attrs.xml 的属性定义文件,内容如下: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="HeadBar&qu

设置Android Studio工程布局文件的默认布局

每次创建新的工程后,布局文件的的布局总是ConstraintLayout,如何更改? 进入Android Studio安装目录,用文本编辑器打开文件plugins\android\lib\templates\activities\common\root\res\layout\simple.xml.ftl 将文件内容修改为 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro

Nuxt的默认模板和默认布局

Nuxt为我们提供了超简单的默认模版订制方法,只要在根目录下创建一个app.html就可以实现了 注:建立了默认模板后,记得要重启服务器,否则你的显示不会成功 默认布局主要针对于页面的统一布局使用.它在位置根目录下的layouts/default.vue.需要注意的是在默认布局里不要加入头部信息,只是关于<template>标签下的内容统一订制. 注:默认布局是不用重启服务器 原文地址:https://www.cnblogs.com/hspl/p/12369897.html