0

質問のあるアプリケーションがあり、進行状況バーを表示して、残っている/回答されている質問の数を表示したいと考えています。質問が正しい場合はプログレスバーの色を緑にし、答えが間違っている場合は赤にしたいと思います。

5つの質問があるとしましょう。たとえば 3 つの質問の後、プログレス バーは

green|red|red|grey|grey

問題1が正しく、2と3が間違っていた場合...

4

2 に答える 2

1

私は実用的な解決策を見つけました..おそらく最善ではないので、コメントをお待ちしています!

私の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);
于 2013-03-16T12:25:42.280 に答える
0

njzk2 がコメントで述べたように、 aProgressBarはこの仕事に適したコンポーネントではありません。

を使用することをお勧めしLinearLayoutます。

水平方向に均等に配分するための重みを使用して、プログラムViewsで必要な数だけその中に追加できViewsます。また、ユーザーが質問を進めるにつれて、これらの背景色を変更することもできます。

于 2013-03-15T16:31:59.937 に答える