I have a TextView
in my activity that should be visible
normally, but gone
for tablet devices.
I know I can create a new layout file for the tablet, but that seems like a lot of duplication, so what I am trying to do is set in my (single) layout file something like...
android:visibility="@string/my_textview_visibility"
...for the TextView
. And then, in my strings resources files, set...
<string name="my_textview_visibility">gone</string>
(in values/strings.xml)
...and...
<string name="my_textview_visibility">visible</string>
(in values-sw720dp/strings.xml)
...to hide the TextView for tablets.
However, when I try this, the app crashes when trying to show that activity.
Do I need to use the constant values instead of the above string values - e.g.,
"visible"
-> 0
"gone"
-> 8
..and, if so, what is the correct way to add/reference those values to/from my XML files?
Or is there another/better way of doing it?
NB - I do not want to show/hide the TextView
programatically in my Java code.
You should be using /values/integers/
instead:
values/integers.xml
<integer name="my_textview_visibility">0</integer> <!-- 0 = View.VISIBLE -->
values-sw720dp/integers.xml
<integer name="my_textview_visibility">2</integer> <!-- 2 = View.GONE -->
Then called like so:
android:visibility="@integer/my_textview_visibility"
ChrisStillwell's answer is correct. But the values are incorrect according to the Android Documentation
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With