、
はあなたのビューファイルにこのコードを貼り付けてみてください
SparseBooleanArray singleChecked;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (position != singleListSelectedPosition) {
singleListSelectedPosition = position;
int totalCount = lvSingleSelect.getCount();
for (int i = 0; i < totalCount; i++) {
if (i == position) {
boolean stat = singleChecked.get(position, false);
singleChecked.put(position, !stat);
} else {
singleChecked.put(i, true);
}
}
adapter.setChecked(singleChecked);
}
}
そして、これはあなたのアダプタクラスのコードです:
public void setChecked(SparseBooleanArray ch) {
singleChecked = ch;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (singleChecked.get(position, false)) {
convertView.setBackgroundColor(getResources()
.getColor(R.color.titlebar_background_color));
} else {
convertView.setBackgroundColor(
getResources().getColor(R.color.emphasis_color));
}
これに問題がある場合はいつでも教えてください。
uがlistviewTitles.setBackgroundColor(非選択色)を書きました。他の部分では –
特定のセルをハイライトしたいですか?そうであれば、セルのレイアウトの背景を次のように設定することもできます:linearLayout.setBackgroundResource(COLOR.GREY); –
getView()にコード全体を投稿してください---あなたがリサイクル時に選択されたアイテムが既に選択されている場合、リスト内のビューをリサイクルしているかどうか確認してください!それは何が起こっている場合! – shadygoneinsane