Как изменить цвет определенного элемента сетки в GridView? - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь создать приложение для викторины. Мне нужно показать номера вопросов в виде сетки и изменить цвет фона номера вопроса, если он уже был предпринят (Flag = 1). Я получаю флаг попытки вопроса из базы данных SQLite. Как установить фон каждого элемента сетки соответственно.

Это мой метод getView GridView Adapter

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view;

    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    if (convertView == null) {

        view = inflater.inflate(R.layout.question_no_layout, null);

        cursor.moveToPosition(position);
        if (cursor!=null && cursor.getPosition()< cursor.getCount()){
            flag = cursor.getInt(cursor.getColumnIndex("Flag"));
           }

        if (flag == 1){
            view.setBackgroundColor(mContext.getResources().getColor(R.color.correct_answer));
        }

        TextView textView = (TextView) view.findViewById(R.id.qnonav_TV);
        textView.setText(String.valueOf(qno[position]+1));

    }
    else {
        view = (View) convertView;
    }

    return view;
}

1 Ответ

0 голосов
/ 10 июля 2018

Попробуйте это:

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view;

            if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.question_no_layout, null);
            } else {
                view = (View) convertView;
            }

            cursor.moveToPosition(position);
            if (cursor!=null && cursor.getPosition()< cursor.getCount()){
                flag = cursor.getInt(cursor.getColumnIndex("Flag"));
            }

            if (flag == 1){
                view.setBackgroundColor(mContext.getResources().getColor(R.color.correct_answer));
            } else {
                view.setBackgroundColor(Color.TRANSPARENT);
            }

            TextView textView = (TextView) view.findViewById(R.id.qnonav_TV);
            textView.setText(String.valueOf(qno[position]+1));

            return view;
        }

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...