android spinner更改特定项目的背景颜色

时间:2015-08-19 13:18:11

标签: java android spinner

我有一个微调器,我想更改特定项目的背景颜色。我的意思是如果对象被命名为:country,如果它具有值section=true,那么微调器的项将具有背景color = blue

@Override
   public View getView(int position, View convertView, ViewGroup parent) {
 final kamcoReportType report = values.get(position);
  if (convertView == null) {
    Context mContext = this.getContext();
   LayoutInflater vi = (LayoutInflater)   mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    TextView tv=(TextView) convertView.findViewById(R.id.TextView01);
    if (report.isSection())
       tv.setBackgroundColor=blue  //what ever

我该怎么做。

3 个答案:

答案 0 :(得分:0)

getView()方法上,您可以这样做:

        if (yourCondition) {
            tv.setBackgroundColor(getContext().getResources().getColor(R.color.blue));
        }

这应该可以解决问题。

@UPDATE

如果我说得对,你想在getView()方法上获取当前项目,对吗?

我假设您的适配器正在扩展ArrayAdapter<T>。如果是这种情况,您可以使用ArrayAdapter getItem(position)方法获取项目并进行测试,如下所示:

if ((getItem(position)).isSection()) { }

getView()内。

希望这有帮助。

答案 1 :(得分:0)

试试这个:

if (report.isSection())
   tv.setBackgroundColor(Color.parseColor("#0D47A1"));

答案 2 :(得分:0)

阅读你的问题,我知道你想要访问列表中的项目。那么这就是你如何做到这一点:

   @Override
   public View getView(int position, View convertView, ViewGroup   parent) {
     final kamcoReportType report = values.get(position);
     if (convertView == null) {
         Context mContext = this.getContext();
         LayoutInflater vi = (LayoutInflater)   mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         TextView tv=(TextView) convertView.findViewById(R.id.TextView01);
         if (report.isSection())
         tv.setBackgroundColor(getContext().getResources().getColor(R.color.blue));
     //here is how will you access your list: let say, your data list name is "itemList"

        item=itemList.get(position);//it will return the item from that list



}