我在我的某个控件中使用可见性时遇到了问题。
我可以在xml文件中设置控件说它工作正常。但是如果我有一个带有visibility = gone值的string.xml并将该值传递给布局文件中的按钮标签,例如。由于这个例外,它会强制关闭。
10-01 01:23:42.950: E/AndroidRuntime(914): Caused by: java.lang.NumberFormatException: Invalid int: "gone"
10-01 01:23:42.950: E/AndroidRuntime(914): at java.lang.Integer.invalidInt(Integer.java:138)
10-01 01:23:42.950: E/AndroidRuntime(914): at java.lang.Integer.parse(Integer.java:375)
10-01 01:23:42.950: E/AndroidRuntime(914): at java.lang.Integer.parseInt(Integer.java:366)
10-01 01:23:42.950: E/AndroidRuntime(914): at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
10-01 01:23:42.950: E/AndroidRuntime(914): at android.content.res.TypedArray.getInt(TypedArray.java:254)
10-01 01:23:42.950: E/AndroidRuntime(914): at android.view.View.<init>(View.java:3451)
10-01 01:23:42.950: E/AndroidRuntime(914): at android.widget.TextView.<init>(TextView.java:447)
10-01 01:23:42.950: E/AndroidRuntime(914): at android.widget.TextView.<init>(TextView.java:442)
答案 0 :(得分:1)
从View | Android Developers开始,可见性实际上接受int
值,而不是String
。 XML中的值gone
是映射到整数的常量,而不是String。解决方案是直接键入android:visibility="gone"
而不使用字符串资源。
答案 1 :(得分:1)
GONE是一个整数常量(它的值实际上是2,如the documentation for the View class here中所列)。它不会被处理为字符串。
答案 2 :(得分:1)
如您所知,View有3种属性,所有这些引用都映射为整数值。 如下所示。
这不是一个字符串。这就是你面临这个问题的原因。
要解决此问题,您可以使用xml中的整数或以编程方式使用
view.setVisibility(View.GONE);
希望这会对你有帮助..