package com.ycjr.navpad_zx.ui.adapter;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chad.library.adapter.base.util.MultiTypeDelegate;
import com.ycjr.navpad_zx.R;
import com.ycjr.navpad_zx.bean.SetItem;
/**
* 功能:
* Created by lzz on 2018/3/6.
*/
public class MainSetAdapter extends BaseQuickAdapter<SetItem, BaseViewHolder> {
private static final int INPUT = 0;
private static final int BOOL = INPUT + 1;
private static final int SELE = INPUT + 2;
private static final int NONE = INPUT + 3;
public MainSetAdapter() {
super(R.layout.item_main_set_input);
setMultiTypeDelegate(new MultiTypeDelegate<SetItem>() {
@Override
protected int getItemType(SetItem setItem) {
SetItem.SetItemType setItemType = setItem.getSetItemType();
if (setItemType instanceof SetItem.SetItemTypeInput) {
return INPUT;
} else if (setItemType instanceof SetItem.SetItemTypeBool) {
return BOOL;
} else if (setItemType instanceof SetItem.SetItemTypeSelect) {
return SELE;
}
return NONE;
}
});
getMultiTypeDelegate().registerItemType(INPUT, R.layout.item_main_set_input)
.registerItemType(BOOL, R.layout.item_main_set_bool)
.registerItemType(SELE, R.layout.item_main_set_sele);
}
@Override
protected void convert(BaseViewHolder baseViewHolder, SetItem setItem) {
baseViewHolder.setText(R.id.tv_main_set_name, setItem.getName());
switch (baseViewHolder.getItemViewType()) {
case INPUT:
showInput(baseViewHolder, setItem);
break;
case BOOL:
showBool(baseViewHolder, setItem);
break;
case SELE:
showSele(baseViewHolder, setItem);
break;
default:
break;
}
}
private void showSele(BaseViewHolder baseViewHolder, SetItem setItem) {
SetItem.SetItemTypeSelect setItemTypeSelect = (SetItem.SetItemTypeSelect) setItem.getSetItemType();
baseViewHolder.setText(R.id.tv_main_set_content,
setItemTypeSelect.getSeleList().get(setItemTypeSelect.curSele));
}
private void showBool(BaseViewHolder baseViewHolder, SetItem setItem) {
final SetItem.SetItemTypeBool setItemTypeBool = (SetItem.SetItemTypeBool) setItem.getSetItemType();
Switch switchBool = baseViewHolder.getView(R.id.switch_set);
switchBool.setChecked(setItemTypeBool.isSele);
switchBool.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
setItemTypeBool.isSele = isChecked;
}
});
}
private void showInput(BaseViewHolder baseViewHolder, SetItem setItem) {
final SetItem.SetItemTypeInput setItemTypeInput = (SetItem.SetItemTypeInput) setItem.getSetItemType();
EditText etMainSetConnect = baseViewHolder.getView(R.id.et_main_set_connect);
TextView tvMainSetUnit = baseViewHolder.getView(R.id.tv_main_set_unit);
tvMainSetUnit.setText(setItemTypeInput.unit);
if (setItemTypeInput.mDigitsKeyListener != null) {
etMainSetConnect.setKeyListener(setItemTypeInput.mDigitsKeyListener);
}
etMainSetConnect.setText(setItemTypeInput.content);
etMainSetConnect.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) {
setItemTypeInput.content = s.toString();
}
});
}
}
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chad.library.adapter.base.util.MultiTypeDelegate;
import com.ycjr.navpad_zx.R;
import com.ycjr.navpad_zx.bean.SetItem;
/**
* 功能:
* Created by lzz on 2018/3/6.
*/
public class MainSetAdapter extends BaseQuickAdapter<SetItem, BaseViewHolder> {
private static final int INPUT = 0;
private static final int BOOL = INPUT + 1;
private static final int SELE = INPUT + 2;
private static final int NONE = INPUT + 3;
public MainSetAdapter() {
super(R.layout.item_main_set_input);
setMultiTypeDelegate(new MultiTypeDelegate<SetItem>() {
@Override
protected int getItemType(SetItem setItem) {
SetItem.SetItemType setItemType = setItem.getSetItemType();
if (setItemType instanceof SetItem.SetItemTypeInput) {
return INPUT;
} else if (setItemType instanceof SetItem.SetItemTypeBool) {
return BOOL;
} else if (setItemType instanceof SetItem.SetItemTypeSelect) {
return SELE;
}
return NONE;
}
});
getMultiTypeDelegate().registerItemType(INPUT, R.layout.item_main_set_input)
.registerItemType(BOOL, R.layout.item_main_set_bool)
.registerItemType(SELE, R.layout.item_main_set_sele);
}
@Override
protected void convert(BaseViewHolder baseViewHolder, SetItem setItem) {
baseViewHolder.setText(R.id.tv_main_set_name, setItem.getName());
switch (baseViewHolder.getItemViewType()) {
case INPUT:
showInput(baseViewHolder, setItem);
break;
case BOOL:
showBool(baseViewHolder, setItem);
break;
case SELE:
showSele(baseViewHolder, setItem);
break;
default:
break;
}
}
private void showSele(BaseViewHolder baseViewHolder, SetItem setItem) {
SetItem.SetItemTypeSelect setItemTypeSelect = (SetItem.SetItemTypeSelect) setItem.getSetItemType();
baseViewHolder.setText(R.id.tv_main_set_content,
setItemTypeSelect.getSeleList().get(setItemTypeSelect.curSele));
}
private void showBool(BaseViewHolder baseViewHolder, SetItem setItem) {
final SetItem.SetItemTypeBool setItemTypeBool = (SetItem.SetItemTypeBool) setItem.getSetItemType();
Switch switchBool = baseViewHolder.getView(R.id.switch_set);
switchBool.setChecked(setItemTypeBool.isSele);
switchBool.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
setItemTypeBool.isSele = isChecked;
}
});
}
private void showInput(BaseViewHolder baseViewHolder, SetItem setItem) {
final SetItem.SetItemTypeInput setItemTypeInput = (SetItem.SetItemTypeInput) setItem.getSetItemType();
EditText etMainSetConnect = baseViewHolder.getView(R.id.et_main_set_connect);
TextView tvMainSetUnit = baseViewHolder.getView(R.id.tv_main_set_unit);
tvMainSetUnit.setText(setItemTypeInput.unit);
if (setItemTypeInput.mDigitsKeyListener != null) {
etMainSetConnect.setKeyListener(setItemTypeInput.mDigitsKeyListener);
}
etMainSetConnect.setText(setItemTypeInput.content);
etMainSetConnect.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) {
setItemTypeInput.content = s.toString();
}
});
}
}