質問のあるアプリケーションがあり、進行状況バーを表示して、残っている/回答されている質問の数を表示したいと考えています。質問が正しい場合はプログレスバーの色を緑にし、答えが間違っている場合は赤にしたいと思います。
5つの質問があるとしましょう。たとえば 3 つの質問の後、プログレス バーは
green|red|red|grey|grey
問題1が正しく、2と3が間違っていた場合...
質問のあるアプリケーションがあり、進行状況バーを表示して、残っている/回答されている質問の数を表示したいと考えています。質問が正しい場合はプログレスバーの色を緑にし、答えが間違っている場合は赤にしたいと思います。
5つの質問があるとしましょう。たとえば 3 つの質問の後、プログレス バーは
green|red|red|grey|grey
問題1が正しく、2と3が間違っていた場合...
私は実用的な解決策を見つけました..おそらく最善ではないので、コメントをお待ちしています!
私のxmlファイルで
<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/info"
/>
<LinearLayout
android:id="@+id/take_test_progress_bar_linear_layout"
android:layout_width="match_parent"
android:layout_height="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:layout_below="@+id/info"
android:orientation="horizontal" >
</LinearLayout>
<TextView
android:id="@+id/question"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/take_test_progress_bar_linear_layout"
android:text="@string/stt1"
/>
そして私の活動では:
oncreate(){
....
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
for(int k=0; k<mTotalQuestionNum; k++)
{
View v = new View(this);
v.setBackgroundColor(Color.GRAY);
params.weight = (float)1.0/( (float) mTotalQuestionNum);
v.setLayoutParams(params);
mProgressLayout.addView(v,k);
}
...
}
次に、回答を処理するとき...
if(correct)
mProgressLayout.getChildAt(mQuestionNum-1).setBackgroundColor(Color.GREEN);
else
mProgressLayout.getChildAt(mQuestionNum-1).setBackgroundColor(Color.RED);
njzk2 がコメントで述べたように、 aProgressBar
はこの仕事に適したコンポーネントではありません。
を使用することをお勧めしLinearLayout
ます。
水平方向に均等に配分するための重みを使用して、プログラムViews
で必要な数だけその中に追加できViews
ます。また、ユーザーが質問を進めるにつれて、これらの背景色を変更することもできます。