選択した(アクティブな)タブと選択されていない(非アクティブな)タブの色を別々に設定する方法について多くの質問がありました。私はまた、これを達成するためにGoogleがvoid setTabTextColors (int normalColor, int selectedColor)
を提供していることを知っています。TabLayout:タブごとにカスタムカラーを設定する
私の要件は少し異なりますが、TabLayout
とCardView
のクイズアプリで作業しています。 TabLayout
を使用すると、ユーザーは質問間を移動でき、CardView
は質問を表示するために使用されます。
ユーザーが既に回答を選択しているタブの色を、ユーザーがまだ回答していない色とは異なるように設定する必要があります。デフォルトではTextColorは黒ですが、ユーザーが回答を選択した場合、タブカラーは青色に変わります(例:)。ユーザーが終了するまでそのままにしてください。私はSelect
というint
配列を持っています。この配列は、ユーザーが選択したオプションの値を保持します(値の範囲は1〜4)。配列Select
を割り当てている間は、-1で初期化します。私はループを設定し、配列が-1
のままの場合は、タブをそのままにするか、またはタブカラーを青に設定します。
どうすればこの機能を実現できますか?
https://github.com/RajNirmal/PreExam2.0/blob/master/app /src/main/java/com/spintum/preexam/Exam_cards.java –
コードを試しましたが、 'TextView tv =(TextView)アイテムにNullPointerExceptionがスローされています。getChildAt(1); 'それ以前はうまくいきましたが、最初の質問の答えを選択すると、2番目の質問の色が変わりました。 GitHubページのコードを参照してください。 –
解決しました。私の前のコードに問題があります。 –