自定义单选ListView

xiaoxiao2021-02-27  163

1.item布局实现Checkable接口

public class ChoiceView extends LinearLayout implements Checkable { TextView tvRepeatTitle; ImageView ivCheckIcon; public ChoiceView(Context context) { super(context); View.inflate(context, R.layout.item_repeat_item, this); tvRepeatTitle = (TextView) findViewById(R.id.tv_repeat_title); ivCheckIcon = (ImageView) findViewById(R.id.iv_check_icon); } public void setText(String text) { tvRepeatTitle.setText(text); } @Override public void setChecked(boolean checked) { if (checked) { ivCheckIcon.setVisibility(View.VISIBLE); } else { ivCheckIcon.setVisibility(View.INVISIBLE); } } @Override public boolean isChecked() { return ivCheckIcon.getVisibility() == VISIBLE; } @Override public void toggle() { Log.w("ChoiceView", "toggle()"); } }

2.将ListView设置为CHOICE_MODE_SINGLE

lvRepeat.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); ListAdapter listAdapter = new ArrayAdapter<String>(this, R.layout.item_repeat_item, repeatArray) { @Override public View getView(int position, View convertView, ViewGroup parent) { final ChoiceView view; if (convertView == null) { view = new ChoiceView(getApplicationContext()); } else { view = (ChoiceView) convertView; } view.setText(getItem(position)); return view; } }; lvRepeat.setAdapter(listAdapter);
转载请注明原文地址: https://www.6miu.com/read-14592.html

最新回复(0)