0

ArrayAdapterを拡張する特定のクラスを開くと、別の画面に移動して戻るボタンを押すと、何か奇妙なことが起こります。特定の値に対して、膨張したxmlファイルの背景を灰色(200,200,200)に設定するように設定しました。しかし、今、戻るボタンを押すと、すべてが灰色になりますが、メイン画面を通過するだけで(そして戻るボタンを押さないで...)、クラスは次のようになります。

オーバーライドgetViewメソッドのコード:

@Override
public View getView(int position, View v, ViewGroup parent) {
    View mView = v;

    if (mView == null) {

        LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
                Context.LAYOUT_INFLATER_SERVICE);
        mView = vi.inflate(R.layout.levelselector_item, null);

    }

    TextView level = (TextView) mView.findViewById(R.id.tvLevel);
    TextView levelScore = (TextView) mView.findViewById(R.id.tvLevelScore);

    if (mView != null) {

        level.setText(Integer.toString(getItem(position).getLevel()));

        loadDataBase();
        int correctAnswers = myDbHelper.getCorrectAnswers(getItem(position).getLevel());

        int correctAnswersPrev = 0;
        int correctAnswersPrev = myDbHelper.getCorrectAnswersPrev(getItem(position).getLevel());

        String correct = Integer.toString(correctAnswers);

        levelScore.setText(correct + "/60");
        level.setTypeface(font);
        levelScore.setTypeface(font);

        if (correctAnswersPrev < 2 && !correct.equals("") ){
        mView.setBackgroundColor(Color.argb(200, 200, 200, 200));
        }

    }
    return mView;
}

private void loadDataBase() {
    // TODO Auto-generated method stub
    myDbHelper = new DataBaseHelper(C);
    try {
        myDbHelper.createDataBase();
    } catch (IOException ioe) {
        throw new Error("Unable to create database");
    }
    try {
        myDbHelper.openDataBase();
    } catch (SQLException sqle) {
        throw sqle;
    }
}

グルツ!

4

1 に答える 1

1

correctAnswersPrev2未満で空ではないことが確実な場合はcorrect、アダプタのビューリサイクラーのデフォルトの色を作成する必要があります。

if (correctAnswersPrev < 2 && !correct.equals("") ){
    mView.setBackgroundColor(Color.argb(200, 200, 200, 200));
}
else {
    mView.setBackgroundColor(Color.argb(00, 200, 200, 200));
}

これにより、背景色が灰色であってはならないときに、背景色が明示的に透明に戻ります。

于 2012-10-01T21:53:29.737 に答える