设置GridView指定行的特殊颜色

        添加GridView的RowDataBound事件:
        protected void GridViewChuXing_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    int flag = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "flag"));
                    if (flag ==0)
                    {
                        e.Row.BackColor = System.Drawing.Color.Red;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在GridView中,要实现某一颜色的效果,可以通过自定义Adapter来实现。具体步骤如下: 1. 首先,创建一个继承自BaseAdapter的自定义Adapter,并重写getView方法。 2. 在getView方法中,通过position参数获取到每一的位置,然后判断该是否需要换颜色。 3. 如果需要换颜色,可以设置一个标志位来记录当前是否为需要换颜色。 4. 在getView方法中,通过判断标志位来为需要换颜色设置不同的背景颜色。 以下是一个简单的示例代码: ```java public class CustomAdapter extends BaseAdapter { private Context mContext; private List<String> mItemList; private boolean mShouldChangeColor; public CustomAdapter(Context context, List<String> itemList) { mContext = context; mItemList = itemList; } @Override public int getCount() { return mItemList.size(); } @Override public Object getItem(int position) { return mItemList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { view = LayoutInflater.from(mContext).inflate(R.layout.item_gridview, parent, false); } else { view = convertView; } TextView textView = view.findViewById(R.id.text_view); textView.setText(mItemList.get(position)); if (position == 2) { // 假设第3需要换颜色 mShouldChangeColor = true; } else { mShouldChangeColor = false; } if (mShouldChangeColor) { view.setBackgroundColor(Color.RED); // 设置背景颜色 } else { view.setBackgroundColor(Color.WHITE); } return view; } } ``` 这样,在GridView的每一中,如果需要换颜色,背景颜色将会被设置为红色;否则,背景颜色将会是白色。 ### 回答2: 要使GridView中的某一颜色,可以通过编写自定义的适配器(Adapter)实现。 首先,创建一个继承自BaseAdapter的适配器类。在该类中,我们需要重写getView()方法,用于自定义每个Grid Item的显示内容。 在getView()方法中,我们可以根据需要设置每个Grid Item的背景颜色。为了实现某一颜色的效果,我们可以在getView()方法中判断当前Grid Item所在的号,若为目标,则设置其背景颜色为所需的颜色,否则设置默认的背景颜色。 以下是一个简单示例的适配器代码: ``` public class MyAdapter extends BaseAdapter { private Context mContext; private List<String> mData; private int mTargetRow; // 目标号 public MyAdapter(Context context, List<String> data, int targetRow) { mContext = context; mData = data; mTargetRow = targetRow; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { view = LayoutInflater.from(mContext).inflate(R.layout.grid_item, parent, false); } else { view = convertView; } TextView textView = view.findViewById(R.id.text_view); textView.setText(mData.get(position)); // 判断当前Grid Item所在的号是否为目标 if (position / numColumns == mTargetRow) { view.setBackgroundColor(mContext.getResources().getColor(R.color.target_color)); } else { view.setBackgroundColor(mContext.getResources().getColor(R.color.default_color)); } return view; } } ``` 在上述代码中,我们通过设置mTargetRow变量来指定目标号,在getView()方法中通过计算当前Grid Item所在的号来判断是否为目标,并设置不同的背景颜色。在实例化适配器时,我们需要传入相应的参数,包括目标号和数据源。 注意,colors.xml文件中应该定义target_color和default_color两个颜色供适配器使用。 最后,将适配器设置GridView: ``` GridView gridView = findViewById(R.id.grid_view); gridView.setAdapter(new MyAdapter(this, data, targetRow)); ``` 这样就实现了在GridView中某一颜色的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值