###前提・実現したいこと
RippleEffectの有無を動的に差し替えたいです。
xmlで以下の様に指定した場合は想定通りRippleEffectは表示されます。
このRippleEffectを動的にON/OFFを切り替えたいのですが、プログラム側で差し替えようとしたところ、例外が発生しました。
RippleEffectの有無を動的に切り替えるにはどのようにすれば良いのでしょうか?
また、xmlで指定した時の先頭の?マークの意味を理解できていないので、こちらが原因なのかとも思ったのですが、解決策を見つけることが出来ませんでした。
この先頭の?の意味も教えて頂けると助かります。
xml
1 <TextView 2 android:id="@+id/player_name" 3 android:layout_width="0dp" 4 android:layout_height="wrap_content" 5 android:layout_weight="1" 6 android:background="?android:attr/selectableItemBackground" 7 android:padding="@dimen/dp_l" 8 android:text="@string/default_player_name" 9 android:textColor="@color/link_text" />
###発生している問題・エラーメッセージ
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.type23.exp, PID: 2453 android.content.res.Resources$NotFoundException: Resource ID #0x101030e at android.content.res.Resources.getValue(Resources.java:1274) at android.content.res.Resources.getDrawable(Resources.java:797) at android.content.Context.getDrawable(Context.java:402) at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:30) at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:372) 以下(略)
###該当のソースコード
kotlin
1nameView.background = ContextCompat.getDrawable(applicationContext, android.R.attr.selectableItemBackground)
###補足情報(言語/FW/ツール等のバージョンなど)
- android 5.0.1の実機で確認
- Kotlin(1.1.1)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。