【发布时间】:2015-09-08 01:11:03
【问题描述】:
对话框的内容是ListView,这是适配器:
public class MultiSelectionSpinnerAdapter extends BaseAdapter {
private Context ctx;
private ArrayList<MultiSelectionItem> items;
private LayoutInflater layoutInflater;
public MultiSelectionSpinnerAdapter(Context ctx, ArrayList<MultiSelectionItem> items) {
this.ctx = ctx;
this.items = items;
this.layoutInflater = LayoutInflater.from(ctx);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final MultiSelectionItem item = items.get(position);
CheckBox checkBox;
if (item.isEditable()) {
convertView = layoutInflater.inflate(R.layout.editable_checkbox, parent, false);
checkBox = (CheckBox) convertView.findViewById(R.id.editableCheckbox);
EditText editText = (EditText) convertView.findViewById(R.id.editableEditText);
editText.setText(item.getEditableValue());
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
item.setEditableValue(s.toString());
}
});
} else {
convertView = layoutInflater.inflate(R.layout.multi_selection_checkbox, parent, false);
checkBox = (CheckBox) convertView;
}
checkBox.setText(item.getLabel());
checkBox.setChecked(item.isSelected());
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
item.setIsSelected(isChecked);
}
});
return convertView;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return items.get(position).getId();
}
}
【问题讨论】:
-
EditText 上方是什么视图?列表视图?
-
很明显,适配器没有保存状态......
-
发布您的适配器代码。
-
确实我没有在适配器中保存状态,我该怎么做?
-
我该怎么做?我会从谷歌搜索开始,因为类似的问题被问了无数次
标签: android