【问题标题】:How to change the color of specific grid element in GridView?如何更改 GridView 中特定网格元素的颜色?
【发布时间】:2018-07-02 17:39:24
【问题描述】:

我正在尝试制作一个测验应用程序。如果已经尝试过,我需要在网格视图中显示问题编号并更改问题编号的背景颜色(标志 = 1)。 我从 SQLite 数据库中获得了尝试提问的标志。如何相应地设置每个网格元素的背景。

这是我的 GridView Adapter getView 方法

@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;
}

【问题讨论】:

    标签: android listview gridview parent-child


    【解决方案1】:

    试试这个:

            @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;
            }
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-02
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多