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 

编辑:吴明辉

没有更多推荐了,返回首页