-1

I got a problem when I want to set different Background button in list view.

public class ColorAdapter extends BaseAdapter{
private LayoutInflater inflater;
private Activity activity;
private String[] colors;

public ColorAdapter(Activity activity, String[] colors){
    this.activity=activity;
    this.colors=colors;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(inflater==null){
        inflater=(LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    if(convertView ==null){
        convertView=inflater.inflate(R.layout.color_layout,null);
    }

    Button button= (Button) convertView.findViewById(R.id.button);
    String thisColor = colors[position].toString();
    button.setText(thisColor);
    String attributeValue = button.getText().toString().toLowerCase();


    if(thisColor == "black"){
         button.setBackgroundColor(Color.BLACK);
    }
    return convertView;
}

}

it's not changing the color. but this code : String thisColor = colors[position].toString(); button.setText(thisColor); is setting the text to "black". What did i miss?

Thank you.

Yawin
  • 3
  • 3

2 Answers2

0

i have updated my answer.

for String you need to use string.equals("string_value");

example:

if(thisColor.equals("black")){
  //your code.
}
Learn Pain Less
  • 2,274
  • 1
  • 17
  • 24
0

Try this code

   public class ColorAdapter extends BaseAdapter{
    private LayoutInflater inflater;
    private Activity activity;
    private int[] colors={Color.BLACK,Color.YELLOW,Color.RED,Color.GREEN};//pass this arrary through constructor

    public ColorAdapter(Activity activity){
        this.activity=activity;

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(inflater==null){
            inflater=(LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
        if(convertView ==null){
            convertView=inflater.inflate(R.layout.color_layout,null);
        }

        Button button= (Button) convertView.findViewById(R.id.button);
        int thisColor = colors[position];
        button.setText(thisColor);
        String attributeValue = button.getText().toString().toLowerCase();
        button.setBackgroundColor(thisColor);
        return convertView;
    }
}
Jinesh Francis
  • 3,377
  • 3
  • 22
  • 37