android如何创建spinner组件,android中使用spinner组件

spinner组件类似于html中的select标签,实现下拉选择框的功能。

添加一个Activity,界面上添加一个spinner下拉框,一个button按钮。点击按钮,获取spinner下拉框当前选择的内容

activity_main.xml:

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_gravity="center_vertical"

tools:context=".MainActivity">

android:id="@+id/spinner"

android:layout_width="match_parent"

android:layout_height="60dp" />

android:id="@+id/button1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="获取内容"

app:layout_constraintTop_toBottomOf="@+id/spinner" />

MainActivity.java:

package com.example.chenrui.app1;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.Spinner;

import android.widget.Toast;

import java.lang.reflect.Array;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final Spinner spinner = findViewById(R.id.spinner);

String[] data ={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};

ArrayAdapter adapter = new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,data);

spinner.setAdapter(adapter);

Button button1 = findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this, "您选择了:" + spinner.getSelectedItem().toString(), Toast.LENGTH_SHORT).show();

}

});

}

}

下拉框的列表内容,放在一个数组中。或者可以把这个列表内容放到资源文件中,放到资源文件的代码如下,注意红色文字部分为修改内容:

package com.example.chenrui.app1;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.Spinner;

import android.widget.Toast;

import java.lang.reflect.Array;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final Spinner spinner = findViewById(R.id.spinner);

ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.week_array,R.layout.support_simple_spinner_dropdown_item);

spinner.setAdapter(adapter);

Button button1 = findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this, "您选择了:" + spinner.getSelectedItem().toString(), Toast.LENGTH_SHORT).show();

}

});

}

}

上面的R.array.week_array资源是保存在res/values/strings.xml资源文件中,内容如下:

app1

星期一

星期二

星期三

星期四

星期五

星期六

星期日

运行的效果如下:

20d4839fd528420163ea1f2ad582acb8.png

android中使用spinner组件,以key,value的方式

接着上一篇文章的内容:android中使用spinner组件 稍做修改,以key,value的方式,在实际使用中,经常需要获取的值并不一定跟显示的内容一致. 需要先添加一个对象类,用来描述key,va ...

Android中Broadcast Receiver组件具体解释

BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...

【Android中Broadcast Receiver组件具体解释
】

BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...

详解Android中的四大组件之一:Activity详解

activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...

关于Android中的四大组件(Service的开启与关闭)

前言 服务(Service)是Android系统中的四大组件之中的一个.服务主要用于两个目的:后台执行和跨进程訪问. 通过启动 一个服务.能够在不显示界面的前提下在后台执行指定的任务,这样能够不影响用 ...

Android笔记(十三) Android中的基本组件——文本

Android中常用的文本组件有 普通文本框(TextView)和编辑框(EditText)两种 EditText是TextView的子类,作用就是在界面上显示文本,区别是EditText允许用户编辑 ...

android中的Serveice组件

创建 配置 Service: 1.定义一个继承了Service类的子类 2.在 AndroidManifest.xml清单文件中对开发的Service进行配置 Service和Activity很相似, ...

Android笔记(十四) Android中的基本组件——按钮

Android中的按钮主要包括Button和ImageButton两种,Button继承自TextView,而ImageButton继承自ImageView.Button生成的按钮上显示文字,而Ima ...

Android 的自定义Spinner组件实现方式

一.Android的API方式默认实现的方式 1.layout下编辑main_activity.xml

display:none和visibility:hidden的区别[]

display:none和visibility:hidden都是把网页上某个元素隐藏起来的功能,但两者有所区别,我发现使用 visibility:hidden属性会使对象不可见,但该对象在网页所占的空 ...

Java 字符转码之UTF-8转为GBK/GB2312

java跟python类似的做法,在java中字符串的编码是java修改过的一种Unicode编码,所以看到java中的字符串,心理要默念这个东西是java修改过的一种Unicode编码的编码. pa ...

(转)JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

ActiveRecord 模式杂谈

ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性.配合遵循的命名和配置惯例,能够很大程度的快速实现模 ...

block、块级作用域

block:语句块 (或其他语言中的 复合语句) 用来组织零个或多条语句. 包含在{ }里面 通常在流程控制语句 (如 if, for, while)中使用 块级作用域:通过var声明的变量没有块级作 ...

修复 Ubuntu 14.04 的系统设置残缺问题

sudo apt-get install ubuntu-desktop

Java(Android)线程池zz

介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...

聊聊Flume和Logstash的那些事儿

在某个Logstash的场景下,我产生了为什么不能用Flume代替Logstash的疑问,因此查阅了不少材料在这里总结,大部分都是前人的工作经验下,加了一些我自己的思考在里面,希望对大家有帮助. 本文 ...

我是如何将页面加载时间从6S降到2S的?

写在前面 生活在信息爆炸的今天,我们每天不得不面对和过滤海量的信息--无疑是焦躁和浮动的,这就意味着用户对你站点投入的时间可能是及其吝啬的(当然有一些刚需站点除外). 如何给用户提供迅速的响应就显得十 ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Spinner 是一个下拉菜单控件,可以在其选择一个选项。如果我们希望 Spinner 显示的是选项的文字,而不是默认的 toString() 方法返回的字符串,可以通过自定义适配器的方式来实现。 首先,我们需要自定义一个适配器,继承 ArrayAdapter,重写 getView() 方法,在其设置显示的文字。例如,以下代码创建了一个自定义适配器,将 Spinner 选项显示选项的名称: ``` public class MySpinnerAdapter extends ArrayAdapter<Item> { private List<Item> itemList; public MySpinnerAdapter(Context context, int resource, List<Item> itemList) { super(context, resource, itemList); this.itemList = itemList; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) super.getView(position, convertView, parent); textView.setText(itemList.get(position).getName()); return textView; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) super.getDropDownView(position, convertView, parent); textView.setText(itemList.get(position).getName()); return textView; } } ``` 在这个适配器,我们重写了 getView() 和 getDropDownView() 方法。getView() 方法用于设置 Spinner 的默认显示文字,getDropDownView() 方法用于设置下拉列表每个选项显示文字。在这两个方法,我们通过 `textView.setText(itemList.get(position).getName())` 来设置显示的文字,其 getName() 是我们自定义的 Item 类的一个方法,用于获取选项的名称。 接下来,我们将自定义的适配器设置为 Spinner 的适配器,即可实现显示选项名称的效果。例如,以下代码创建了一个包三个 Item 对象的列表,并将其作为适配器设置给 Spinner: ``` List<Item> itemList = new ArrayList<>(); itemList.add(new Item("item1")); itemList.add(new Item("item2")); itemList.add(new Item("item3")); MySpinnerAdapter adapter = new MySpinnerAdapter(this, android.R.layout.simple_spinner_item, itemList); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner spinner = findViewById(R.id.spinner); spinner.setAdapter(adapter); ``` 在这段代码,我们创建了一个包三个 Item 对象的列表,然后将其作为适配器设置给 Spinner。通过 `adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)` 方法,我们设置了下拉列表的布局,即系统自带的简单布局。最后,通过 `spinner.setAdapter(adapter)` 方法将适配器设置为 Spinner 的适配器,即可实现显示选项名称的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值