0

カスタムベースアダプターのリストビューがあります。リストにデータを入力するとき、オブジェクトのブール値をチェックする必要があります。リストビューにデータを入力している場合は、その行の背景色を変更します。

public View getView(int position, View convertView, ViewGroup parent) {
    LoginsList entry = listOfLoginsLists.get(position);
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.lists_row, null);
    }

    TextView ListName = (TextView) convertView.findViewById(R.id.tvListName);
    ListName.setText(entry.getListName());

    TextView ListDescription = (TextView) convertView.findViewById(R.id.tvListDescription);
    ListDescription.setText(entry.getListDescription());

    Button Send = (Button) convertView.findViewById(R.id.bSend);
    Send.setOnClickListener(this);
    Send.setTag(entry);

    RelativeLayout RelLayout = (RelativeLayout) convertView.findViewById(R.id.layoutListsRow);
    RelLayout.setFocusableInTouchMode(false);
    RelLayout.setFocusable(false);
    RelLayout.setOnClickListener(this);
    RelLayout.setTag(entry);

    if (entry.isSent()) {
        RelLayout.setBackgroundColor(Color.parseColor("#4400FF00"));
    }

    return convertView;
}

しかし、このコードは正しく機能しません。リスト ビューをスクロールすると、行の色がめちゃくちゃになります。

4

2 に答える 2

3
if (entry.isSent()) {
        RelLayout.setBackgroundColor(Color.parseColor("#4400FF00"));
}else {
        RelLayout.setBackgroundColor(//default color);
}
于 2012-10-30T10:58:05.780 に答える
0

リストセレクターが定義されている可能性があります....または使用

RelLayout.setBackgroundResource(R.color.mycolor);

また、いずれにしても isSent() 条件が true かどうかを確認してください。

于 2012-10-30T10:59:10.833 に答える