package cn.alphabets.light.ui;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import java.io.Serializable;
import cn.alphabets.light.R;
/**
* Select
* Created by lin on 14/12/28.
*/
public class SelectAdapter extends ArrayAdapter<SelectAdapter.SelectItem> {
private boolean isMultiple;
private boolean isReadOnly;
public static class SelectItem implements Serializable {
String title;
String value;
boolean isChecked;
public SelectItem(String title, String value) {
this.title = title;
this.value = value;
this.isChecked = false;
}
public SelectItem(String title, String value, boolean isChecked) {
this.title = title;
this.value = value;
this.isChecked = isChecked;
}
}
public SelectAdapter(Context context, int resource, boolean isMultiple, boolean isReadOnly) {
super(context, resource);
this.isMultiple = isMultiple;
this.isReadOnly = isReadOnly;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = View.inflate(getContext(), R.layout.activity_select_item, null);
}
final SelectItem item = getItem(position);
TextView title = (TextView) convertView.findViewById(R.id.select_item_title);
title.setText(item.title);
final CheckBox checked = (CheckBox) convertView.findViewById(R.id.checked);
if (!isMultiple) {
checked.setVisibility(View.GONE);
} else {
checked.setVisibility(View.VISIBLE);
checked.setChecked(item.isChecked);
if (isReadOnly) {
checked.setEnabled(false);
}
checked.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (checked.isChecked()) {
checked.setChecked(true);
item.isChecked = true;
} else {
checked.setChecked(false);
item.isChecked = false;
}
}
});
}
return convertView;
}
}