2016-09-22 2 views
-1

リストビューで別の背景ボタンを設定したいときに問題が発生しました。Android Studioリストビューで動的にボタンの背景

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

}

それは色を変えていません。このコード: String thisColor = colors[position].toString(); button.setText(thisColor); が「黒」に設定されています。私は何を取りこぼしたか?

ありがとうございます。

+0

可能な重複http://stackoverflow.com/questions/513832/how- do-i-compare-strings-in-java) –

+0

if(thisColor.equals( "black")){...}これを試してください – anonymous

+0

文字列の比較を確認してください.. equalsegnorecaseまたは.equalsメソッドを使用する必要があります。 –

答えて

0

私は自分の答えを更新しました。

文字列の場合は、string.equals( "string_value")を使用する必要があります。

例:

if(thisColor.equals("black")){ 
    //your code. 
} 
+0

これは質問に答えることができないため、ダウン投票しました。 – Abbas

+0

ありがとうございます。この答えは働いています:) – Yawin

0

このコード

を試してみてください
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; 
    } 
} 
[?私はJavaで文字列を比較するにはどうすればよい](の
関連する問題