Android中有趣而又经常犯错的小知识点,那些总能扬嘴一笑的小错误---吴明辉

本文主要是介绍Android中有趣而又经常犯错的小知识点,那些总能扬嘴一笑的小错误---吴明辉,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发过程中常会遇到一些简单的错误,每当回头去修改时都不禁扬嘴一笑。我希望这篇文章能一起见证自己的成长,把开发过程中有趣小错误都一一记下来,把快乐和大家一一分享。

问题一:(栗子:获取当前星期)

  1. "R.string.xx"获取String中的数据常被误以为返回的是String类型;
  2. "equals()""="的使用经常容易混淆;

举个栗子:

    /*** 获取当前星期,add by 吴明辉* * @return*/public static String getWeek(Context context) {final Calendar c = Calendar.getInstance();c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));mWay = String.valueOf(c.get(Calendar.DAY_OF_WEEK));if ("2".equals(mWay)) {mWay = context.getString(R.string.monday);} else if ("3".equals(mWay)) {mWay = context.getString(R.string.tuesday);} else if ("4".equals(mWay)) {mWay = context.getString(R.string.wednesday);} else if ("5".equals(mWay)) {mWay = context.getString(R.string.thursday);} else if ("6".equals(mWay)) {mWay = context.getString(R.string.friday);} else if ("7".equals(mWay)) {mWay = context.getString(R.string.saturday);} else if ("1".equals(mWay)) {mWay = context.getString(R.string.sunday);}return mWay;}
     <!-- 星期 --><string name="monday">星期一</string><string name="tuesday">星期二</string><string name="wednesday">星期三</string><string name="thursday">星期四</string><string name="friday">星期五</string><string name="saturday">星期六</string><string name="sunday">星期天</string>

在以上代码中我们常常会习惯性的把mWay = context.getString(R.string.monday)换成mWay = R.string.monday返回的数据可就不一样了,当然大神可能不会,但小菜确实是被误导过。

罪魁祸首:xx.setText(R.string.xx)和xx.setText("String类型");

解决:this.getString(R.string.xx);

"equals()""="也好玩了,把上面代码mWay = context.getString(R.string.monday)中的"="换成"equals()"返回的可不是你想要的星期一了。

原因:"="是获取context.getString(R.string.monday)的对象,而"equals()"则是context.getString(R.string.monday)的值。

解决:记住"equals()"是比较值,而"="是比较对象。

END 

编辑:吴明辉

这篇关于Android中有趣而又经常犯错的小知识点,那些总能扬嘴一笑的小错误---吴明辉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/304217

相关文章

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

解决java.util.RandomAccessSubList cannot be cast to java.util.ArrayList错误的问题

《解决java.util.RandomAccessSubListcannotbecasttojava.util.ArrayList错误的问题》当你尝试将RandomAccessSubList... 目录Java.util.RandomAccessSubList cannot be cast to java.

Java编译错误java.lang.NoSuchFieldError的解决方案详析

《Java编译错误java.lang.NoSuchFieldError的解决方案详析》java.lang.NoSuchFieldError是Java中的一种运行时错误,:本文主要介绍Java编译错... 目录前言解决方案1. 统一JDK版本环境2. 优化maven-compiler-plugin配置3. 清

Navicat连接Mysql8.0.11出现1251错误的解决方案

《Navicat连接Mysql8.0.11出现1251错误的解决方案》在重装电脑并安装最新版MySQL后,Navicat和Sqlyog连接MySQL时遇到的1251和2058错误,通过将MySQL用户... 目录Navicat连接mysql8.0.11出现1251错误原因分析解决问题方法有两种总结Navic

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3