1

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

我可以在 xml 文件中设置控件说它工作正常。但是如果我有一个 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)
4

3 回答 3

1

视图 | Android 开发人员,可见性实际上接受int值,而不是String. XML 中的值gone是映射到整数的常量,而不是字符串。解决方案是直接键入android:visibility="gone"而不使用字符串资源。

于 2013-10-01T02:01:14.353 回答
1

GONE 是一个整数常量(它的值实际上是 2,如此处 View 类的文档中所列)。它不作为字符串处理。

于 2013-10-01T02:02:11.010 回答
1

如您所知,View 有 3 种属性,所有这些引用都映射到一个整数值。如下所示。

  1. 可见 -0
  2. 隐形-1
  3. 走了-2

这不是一个字符串。这就是你面临这个问题的原因。

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

希望对你有帮助..

于 2013-10-01T04:53:26.570 回答