2017-04-16 7 views
0

私は複数のレイアウトで表示されるボタンウィジェットを持っています。最後のリリースでは、ボタンはユーザーから隠されていましたが、それまでは開発のアルファ版とベータ版で表示する必要がありました。リソース値を使用してビューの可視性を制御する方法は?

一意のリソース値からそのボタンの表示を制御する方法はありますか?このような

何か:

<!-- Feedback button --> 
<Button 
    android:id="@+id/feedback" 
    style="@android:style/Widget.Button.Small" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="@dimen/buttons_margin" 
    android:layout_marginLeft="@dimen/buttons_margin" 
    android:text="Feedback" 
    android:visibility="<some resource value>" 
    /> 

代替は、ブール値を持っており、プログラムでボタンの可視性を設定し、それはそのそのレイアウトでこのボタン一つ一つの活動で行わなければならないことであろう。

答えて

1

はい、それは可能です:

android:visibility="@integer/show_view" 

そして、あなたのintegers.xml -fileで:

<integer name="show_view">0</string> 

可能な値は

0 (VISIBLE) 
1 (INVISIBLE) 
2 (GONE) 
+0

うーん...あなたは確かにその文字列リソースされていますここで正しいアプローチですか?通常、これらはシンボル名の基礎となる数値を持つ整数リソースである必要があります。 – CommonsWare

+0

私はちょうどそれをテストしたし、(少なくともレイアウトエディタで)動作するようです。それぞれの定数の値を持つintリソースを作成することもおそらく有効です。 – Miraduro

+1

'java.lang.NumberFormatExceptionが発生しました:無効なint:' setContentView(R.layout.my_layout); ' – rraallvv

関連する問題