我需要知道区别的原因是我正在实现一个自定义的Preference子类,并获取我需要覆盖onGetDefaultValue()的默认值,它从TypedArray中获取一个整数.例:
@OverrIDeprotected Object onGetDefaultValue(TypedArray a,int index){ return a.getInteger(index,DEFAulT_VALUE);}
这里我使用getInteger(),但如果getInt()更好,那么我将使用它.
解决方法 他们只是有不同的“所有其他失败”案件.它们都为有效的int返回一个int,为null返回defValue.区别在于他们如何处理这两者的情况.从link:
/* * copyright (C) 2008 The AndroID Open Source Project * * licensed under the Apache license,Version 2.0 (the "license"); * you may not use this file except in compliance with the license. * You may obtain a copy of the license at * * http://www.apache.org/licenses/liCENSE-2.0 * * Unless required by applicable law or agreed to in writing,software * distributed under the license is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implIEd. * See the license for the specific language governing permissions and * limitations under the license. */TypedValue v = mValue;if (getValueAt(index,v)) { Log.w(Resources.TAG,"Converting to int: " + v); return XmlUtils.convertValuetoInt( v.coercetoString(),defValue);}Log.w(Resources.TAG,"getInt of bad type: 0x" + Integer.toHexString(type));return defValue;
这是你指的额外.它似乎是将未知值转换为字符串然后转换为整数.如果您存储了“12”或某个等效值,这可能很有用.
另外,如果getInteger不为null而不是int,则抛出异常.相反,如果所有其他方法都失败,则getInt将返回默认值.
还要注意,在这种奇怪的情况下,它们的行为是不同的,在每种情况下调用一个优于另一个的行为都是不正确的.最好的解决方案是符合您对失败的期望.
总结以上是内存溢出为你收集整理的android – TypedArray.getInteger()和TypedArray.getInt()之间有什么区别?全部内容,希望文章能够帮你解决android – TypedArray.getInteger()和TypedArray.getInt()之间有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)