首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android - Spinner不显示内部类的字符串值,但显示内部类的名称

Android中的Spinner是一个下拉列表控件,用于显示一组选项供用户选择。在Spinner中显示的选项通常是字符串值,但当使用内部类作为选项时,Spinner默认会显示内部类的名称而不是字符串值。

要解决这个问题,可以通过自定义适配器来显示内部类的字符串值。以下是一个示例代码:

代码语言:java
复制
// 定义内部类
public class MyOption {
    private String value;

    public MyOption(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}

// 创建内部类列表
List<MyOption> options = new ArrayList<>();
options.add(new MyOption("Option 1"));
options.add(new MyOption("Option 2"));
options.add(new MyOption("Option 3"));

// 创建自定义适配器
ArrayAdapter<MyOption> adapter = new ArrayAdapter<MyOption>(this, android.R.layout.simple_spinner_item, options) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView textView = (TextView) super.getView(position, convertView, parent);
        textView.setText(options.get(position).getValue());
        return textView;
    }

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        TextView textView = (TextView) super.getDropDownView(position, convertView, parent);
        textView.setText(options.get(position).getValue());
        return textView;
    }
};

// 设置适配器
Spinner spinner = findViewById(R.id.spinner);
spinner.setAdapter(adapter);

在上面的代码中,我们创建了一个名为MyOption的内部类,它包含一个字符串值。然后,我们创建了一个包含MyOption对象的列表,并使用自定义适配器来显示列表中的字符串值。在自定义适配器的getView()和getDropDownView()方法中,我们将显示MyOption对象的字符串值。

这样,Spinner就会显示内部类的字符串值而不是名称。

关于Spinner的更多信息和使用方法,你可以参考腾讯云的相关文档:Spinner | Android Developers

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自用知识_实用小知识

·匿名内部类不能定义任何静态成员、静态方法。 ·匿名内部类不能是public,protected,private,static。 ·只能创建匿名内部类一个实例。...·一个匿名内部类一定是在new后面,用其隐含实现一个接口或实现一个类。 ·因匿名内部类为局部内部类,所以局部内部类所有限制都对其生效。...工程名–右键–Properties–MyEclipse–Web– 把Web Context-root名字给改了 ExpandableListView 值得简单说下android:cacheColorHint...WHERE 列名称 = DELETE FROM tb_move_data WHEREid >100 改 update tb_move_station set s_spare1 =’2025-2-...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

59420

Android实现简单用户注册案例

本文实例为大家分享了Android实现简单用户注册具体代码,供大家参考,具体内容如下 目标: 设计一个用户注册案例。在主界面中对输入手机号、密码、性别、爱好和城市后,可以在界面二中进行显示。...,意图原来已经具有的数据不会丢失,key同名数据会被替换 intent.putExtras(bundle); //取得启动该ActivityIntent对象 Intent intent=this.getIntent...} } @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { //根据用户选择来改变sex_str...register可使用内部类,并重写onClick()方法 。 spinner可使用实现接口监听事件。...= (Spinner) findViewById(R.id.spinner); //直接new一个内部类对象作为参数 register.setOnClickListener(new mclick()

1.5K50

Android开发笔记(八十六)几个特殊

接口interface interface是一些功能集合,但它只定义了对象必须实现成员,而包含成员实现代码,成员具体代码由实现接口类提供。...事件监听器接口 这类接口名称一般以Listener或者CallBack结尾,监听器定义了事件触发时应该进行操作方法,具体操作步骤需要自定义实现。...AdapterView派生类包括Spinner、ListView、GridView等等,详见《Android开发笔记(三十八)列表类视图》; 3、基础动画Animation,它也没有定义抽象方法,定义了一个空方法...方法,详见《Android开发笔记(四十九)异步任务处理AsyncTask》; 内部类 Java允许在类中再定义类,这种在其它类内部定义类就叫做内部类。...内部类有四种,分别是类中内部类、方法内部类、参数内部类和静态嵌套类,其中Android开发中常用是类中内部类和参数内部类两种。

58920

Android编程规范

局部变量,类成员变量,类成员函数,函数参数: 以小写字母开头其他单词首字母大写,变量名建议使用下划线分隔单词,建议使用驼峰命名法,Android系统类都采用此方法。...注:不允许出现毫无意义命名,例如textview1,textview2 关于字面常量: 代码中不允许出现直接硬编码字面常量,如果是控件上面显示文本,必须放在strings.xml资源文件中。...如果是代码中用到常量字符串,必须定义成 public static final String类型常量值,在代码中使用该定义常量值。这样做好处是以后需要修改该常量值,只需要修改一个地方。...不允许因为服务端json出问题,导致app在解析json时候出现崩溃。 类成员初始化: 所有类成员变量一定要赋初始,不允许只定义,赋值。...,这种细节应该隐藏在Handler里面。

1.2K70

2021年Android面试题及答案收集(不断更新中)

Annotion对象,然后通过Annotion对象来获取注解里面的元数据 注解一般格式为:[修饰符]@interface[名称]{元素},元素是无方法体方法声明,可以有默认。...字符串常量池需要:字符串常量池是Java堆内存中一个特殊存储区域,当创建一个String对象时,假如此字符串已经存在于常量池中,则不会创建一个新对象,而是引用已经存在对象,假若字符串对象允许改变...Bitmap使用及内存优化 位图是相对于矢量图而言,也称为点阵图,位图由像素组成,图像清晰度由单位长度像素多少来决定,在Android系统中,位图使用Bitmap类来表示,该类位于android.graphics...集成到项目之后,在检测内存泄漏时,会发送消息到系统通知栏,点击后会打开名称DisplayLeakActivity页面,并显示泄露跟踪信息,Logcat上面也会有对应日志输出。...而JVM中常量池在内存当中是以表形式存在,对于String类型,有一张固定长度CONSTANT_String_info表用来存储文字字符串,注意:该表只存储文字字符串,不存储符号引用。

84920

Android异步消息机制详解

②当子线程处理完耗时操作,需要将处理结果反馈到UI中时,先创建一个Message对象,并让其what字段携带一个int,然后通过Handler对象发送出去。...TextView初始化显示“Hello World!”,之后点击按钮,进行耗时操作;耗时操作结束后,TextView显示“Nice to meet you”。...其实之前警告,已经给出了解决方案。那就是通过静态内部类方式创建Handler对象,因为静态内部类不会持有对外部类对象引用。...如果我持有对外部类引用了,那么我怎么使用外部类方法和对象?毕竟我是要在handleMessage()方法中进行UI操作。...对于这种使用了静态内部类来避免内存泄露,同时又需要调用外部类方法情况:可以使用弱引用!即我们在该内部类中声明一个对外部类对象弱引用。这样即可以调用外部类方法,又不会导致内存泄露。

1.5K10

Android开发笔记(三十八)列表类视图

该属性不可直接填字符串,但可通过"@string/..."方式来指定标题文字。 spinnerMode : 下拉列表显示样式,有dialog弹窗和dropdown下拉两种。...源码中适配器类型是SpinnerAdapter,该类用起来很麻烦,所以实际中用一般是ArrayAdapter,ArrayAdapter可以直接传入一个字符串数组。...ellipsize : 指定字符超出TextView区域时显示方式,取值说明如下:start表示在字符串开头显示省略号,end表示在字符串末尾显示省略号,middle表示在字符串中间显示省略号,marquee...headerDividersEnabled : 指定是否显示列表开头分隔线。实际开发中发现这个设置不起作用,即使该属性设置为true,开头也不会显示分隔线。...总结ListView属性设置有两个注意点(不知算不算Androidbug,呵呵): 1、divider设置为@null时,就不能再设置dividerHeight为非0,不然列表末尾元素显示有问题

2.3K20

Android解析WindowManager(二)Window属性

为了方便窗口显示次序管理,手机屏幕可以虚拟用X、Y、Z轴来表示,其中Z轴垂直于屏幕,从屏幕指向屏幕外,这样确定窗口显示次序也就是确定窗口在Z轴上次序,这个次序称为Z-Oder。...当然窗口显示次序逻辑不会这么简单,情况会比较多,举个常见情况:当多个窗口Type都是TYPE_APPLICATION,这时WMS会结合各种情况给出最终Z-Oder,这个逻辑不在本文讨论范围,...3.Window标志 Window标志也就是Flag,用于控制Window显示,同样被定义在WindowManager部类LayoutParams中,一共有20多个,这里我们给出几个比较常用。...4.软键盘相关模式 窗口和窗口叠加是非常常见场景,如果其中窗口是软键盘窗口,可能就会出现一些问题,比如典型用户登录界面,默认情况弹出软键盘窗口可能会盖住输入框下方按钮,这样用户体验会非常糟糕...为了使得软键盘窗口能够按照期望来显示,WindowManager静态内部类LayoutParams中定义了软键盘相关模式,这里给出常用几个: ?

98680

Kotlin学习日志(六)控件使用

as实现,具体转换格式形如“待转换变量名称 as 转换后类型名称”。...(2)由于待显示字符串需要拼接按钮文本,因此需要通过字符串模板表达式"${***} "将按钮文本置于该字符串。 2....内部类方式 对于包含较多行代码事件处理,往往给它定义一个内部类,这样该事件处理代码被完全封装在内部类之中,能够有效增强代码可读性。...实际并不简单,比如常见文字跑马灯效果,一行文本内容太多,导致无法完全显示,但也不想分行显示,于是就有这个跑马灯效果了。 下面用代码来展示一下吧: 布局代码: <?...明文显示 实际业务逻辑操作中,很多是在输入过程中对输入进行判断,对于输入时控制通过文本观察器TextWatcher,它可以实时监控用户输入字符,并且支持在输入每个字符时由开发者进行手工干预

1.7K30

JSON介绍及Android最全面解析方法(Gson、AS自带org.son、Jackson解析)

特点 轻量级文本数据交换格式 独立于语言和平台 具有自我描述性 读写速度快,解析简单 语法 JSON - 名称/ - 数组 - 对象 JSON实例 {"skill":{.../”对 无序、一个对象用“{}”包括,名称间用“:”相隔,对象间用“,”隔开; “` “name”:”html” - 对象 一个JSON对象包括多个名称/对,在花括号里书写 {...对”” } ] 数组包含对象,对象包含/对 JSON解析 在了解了JSON后,是时候来看下如何在Android解析JSON数据 解析方法 Android解析JSON数据方法和...和Gson解析不同是,GSON可按需解析,即创建JavaBean类不一定完全涵盖所要解析JSON数据,按需创建属性,Jackson解析对应JavaBean必须把Json数据里面的所有key都有所对应...,即必须把JSON数据所有解析出来,无法按需解析。

2.8K40

面试涨薪攻略指南:Android面试必须掌握那些Java知识点

1、java中==和equals和hashCode区别 基本数据类型==比较相等。...如果两个对象equals,他们hashcode有可能相等。 如果两个对象hashcode相等,他们不一定equals。 如果两个对象hashcode不相等,他们一定equals。...,每次改变相当于生成一个新对象 StringBuffer:字符串变量 (线程安全) StringBuilder:字符串变量(线程不安全) 确保单线程下可用,效率略高于StringBuffer 4、什么是内部类...内部类作用 内部类可直接访问外部类属性 Java中内部类主要分为成员内部类、局部内部类(嵌套在方法和作用域)、匿名内部类(没构造方法)、静态内部类(static修饰类,不能使用任何外围类非static...9、成员内部类、静态内部类、局部内部类和匿名内部类理解,以及项目中应用 ava中内部类主要分为成员内部类、局部内部类(嵌套在方法和作用域)、匿名内部类(没构造方法)、静态内部类(static修饰

48110

Android资源那些事儿

其默认名为strings.xml 对应于R类中部类名称:R.string 文件根元素为resources: 定义: android:text="@string/text_name"所表达 正是引用同一包下字符串资源文件中名为text_name字符串资源。...其默认名为colors.xml 对应于R类中部类名称:R.color 文件根元素为resources: 定义: <?xml version="1.0" encoding="utf-8"?...其默认名为dimens.xml 对应于R类中部类名称:R.dimen 文件根元素为resources: 定义: <?xml version="1.0" encoding="utf-8"?...其默认名为arrays.xml 对应于R类中部类名称:R.array 文件根元素为resources: 不同是,arrays.xml文件中可以定义三种不同类型子元素: 1、普通类型数组

83020

JAVA知识盲区整理

,不过这里静态内部类没有被加载 静态内部类加载不需要依附外部类,在使用时才加载。...即获取 volatile 变量都是最新 不能保证变量原子性,要么都成功,要么都失败 浅析Java中volatile关键字及其作用 ---- 一篇反射好文链接 Java基础之—反射(非常重要)..., 包含被继承子类 Set allTypes = reflections.getAllTypes(); //获取所有Object类所有子类.此方法推荐, 推荐...使用 ---- java字符串常量池 字符串常量池,程序当中直接写上双引号字符串,就在字符串常量池中 对于基本类型来说 == 是进行数值得比较 对于引用类型来说 == 是进行【地址】比较...,如果写全限定类名,只写一个实体类名称的话,那就需要在application.yml文件中设置mybatis:type-aliases-package参数; 怎么写application.yml中

1.1K32

java面试题汇总一(会持续更新)

积跬步无以至千里,这里会不断收集和更新Java基础相关面试题,目前已收集100题。 1.什么是B/S架构?...修饰变量叫常量,常量必须初始化,一旦初始化后,常量不能发生改变。复制代码 39.Java中操作字符串使用哪个类?...\==可以判断基本数据类型是否相等,也可以判断两个对象指向内存地址是否相同,也就是说判断两个对象是否是同一个对象,Equlas通常用来做字符串比较。 47.如何将字符串反转?...当一个类中出现了多个相同名称方法,参数个数和参数类型不同,方法重载与返回无关 重写叫overwrite,是字符类中多态表现。当子类出现与父类相同方法,那么这就是方法重写。...资源分配给进程,同一进程所有线程共享该进程所有资源。 线程在执行过程中,需要协作同步。不同进程线程间要利用消息通信办法实现同步。 线程是指进程一个执行单元,也是进程可调度实体。

44700

Android触摸事件_wpf触摸屏点击事件

匿名内部类作为事件监听器: 原理和上面一个方法相同,但是可以用Java语法简化,参照Java匿名内部类。...外部类作为事件监听器: 在MainActivity外部定义一个辅助类,和内部类相似,但是不能访问组件信息,建议使用。...长按事件返回是boolean而不是void,所以最后要返回 true或 false。 返回含义: 当我们长按时,会触发长按操作,那么如果我们同时也设置了点击监听,我们会不会也触发了点击监听?...实例 我们在最上方设置一个TextView,用于显示我们操作。 练习一下TableLayout,设置4个按键,分别用Button和TextView,用多种方法加上监听器。...从最上方TextView滑动手指,可以时时显示坐标。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。

2K20

2019 Android 高级面试题总结 从java语言到AIDL使用与原理

内存泄漏场景和解决办法 1.非静态内部类静态实例 非静态内部类会持有外部类引用,如果非静态内部类实例是静态,就会长期维持着外部类引用,组织被系统回收,解决办法是使用静态内部类 2.多线程相关匿名内部类和非静态内部类...利用这种特性,即使是上千张图片,也只会仅仅只需要占用屏幕所能够显示图片数量内存大小,复用存在一些限制,具体体现在:在Android 4.4之前只能重用相同大小Bitmap内存,而Android...也难以放在ListView或者ScrollView中,不能使用UI控件一些特性比如View.setAlpha() View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程更新画面...,比如,在SpashActivity 显示后再发送消息到 Application,去初始化,这样可以将初始化动作放在后边,缩短应用启动到用户看到界面的时间 Android线程有那些,原理与各自特点...如果对象hashCode不同,那么不用调用equals方法就会将对象直接存储到集合中; 如果对象hashCode相同,那么需调用equals方法判断返回是否为true, 若为false,

79520

Android实训_2020616

TextView 文本显示控件 android:gravity=“center” 内部元素居中 android:textSize=“30sp” 设置文字大小,单位sp android:textColor...提前设定要一段要执行代码A,监听器监听某个事件B。 当B出现时,执行A;如果B一直不出现,A也一直执行。...,然后获得类对象 匿名内部类 匿名内部类 【录播课程扩展内容】 其他控件使用 监听器不同种实现方式 多个控件设置监听器简易方式 【ProgressDialog 进度等待窗口】 弹出一个浮动窗口用于显示等待中...Activity跳转 1.创建Intent对象,并导包 2.给构造方法传入参数,参数一:当前页面的名称.this;参数二:要跳转到页面的名称.class 3.调用startActivity方法传入...Activity传 使用Intent对象来携带数据进行跳转传

72920

详解 final 修饰符

"口诀"是不够,本文将对 final 这些功能进行分析 1. final 修饰变量功能 (1) 被 final 修饰变量被赋初始后,不能再重新赋值 被 final 修饰实例变量必须显示指定初始...,虽然写程序时候可以在定义final类变量时候和在静态代码块中为final类变量赋初始本质上,这2种方式是一样,都是在静态代码块中赋值 final修饰局部变量需要被显示赋初始,其实非final...修饰局部变量也需要显示赋初始,只不过被final修饰局部变量被赋值后就不能重新赋值了。...非静态内部类对象可以很方便回调其外部类Field和方法,所以非静态内部类与"闭包"功能是一样 接下来继续解释为什么匿名内部类中要访问局部变量必须使用final修饰 对于普通局部变量而言,它作用域就是停留在方法...,实际上只要新线程里run()方法没有执行完,匿名内部类声明周期就没有结束,将一直可以访问str这个局部变量,这就是内部类扩大局部变量作用域实例 由于内部类可能扩大局部变量作用域,那么假如这个局部变量还可以被任意修改

49040
领券