2 가지 유형의 데이터가 포함 된 ListView가 있습니다. 1 유형을 길게 누르면 작업 모드를 시작하고 싶습니다.ActionView 시작은 ListView 항목 유형에 따라 다릅니다.
이렇게하면 동작 모드가 활성화됩니다.
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(multiChoiceModeListener);
두 번째보기 유형에 대한 동작 모드를 해제하는 방법. setActionModeStarted가 MultiChoiceModeListenerCallback에 의해 잘 살고있다
public class DeviceExclListView extends ListView{
private ActionMode mAm;
private boolean mActionModeStarted;
public DeviceExclListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public DeviceExclListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DeviceExclListView(Context context) {
super(context);
}
@Override
public ActionMode startActionMode(Callback callback) {
return mAm = super.startActionMode(callback);
}
@Override
public boolean performItemClick(View view, int position, long id) {
Object item = getItemAtPosition(position);
if(item instanceof DeviceItem && mActionModeStarted){
return true;
}else{
return super.performItemClick(view, position, id);
}
}
@Override
public void setItemChecked(int position, boolean value) {
Object item = getItemAtPosition(position);
if(item instanceof DeviceItem){
mAm.finish();
}else{
super.setItemChecked(position, value);
}
}
public boolean isActionModeStarted() {
return mActionModeStarted;
}
public void setActionModeStarted(boolean mActionModeStarted) {
this.mActionModeStarted = mActionModeStarted;
}
}
: