Android:在xml布局文件中使用可见性时遇到问题

时间:2013-10-01 01:29:57

标签: android exception layout visibility

我在我的某个控件中使用可见性时遇到了问题。

我可以在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)

3 个答案:

答案 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种属性,所有这些引用都映射为整数值。 如下所示。

  1. visible -0
  2. invisible-1
  3. 去了-2
  4. 这不是一个字符串。这就是你面临这个问题的原因。

    要解决此问题,您可以使用xml中的整数或以编程方式使用 view.setVisibility(View.GONE);

    希望这会对你有帮助..