代码示列

来源:互联网 发布:java井字棋界面设计 编辑:程序博客网 时间:2024/05/01 23:42
自动生成列表viewimport android.os.Bundle;import android.os.Handler;import android.os.Message;import android.text.Editable;import android.text.TextUtils;import android.text.TextWatcher;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;import org.greenrobot.eventbus.EventBus;import org.greenrobot.eventbus.Subscribe;import org.greenrobot.eventbus.ThreadMode;import org.xutils.view.annotation.ContentView;import org.xutils.view.annotation.Event;import org.xutils.view.annotation.ViewInject;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;@ContentView(R.layout.ta_pathography)public class TA_PathographyRecord extends TA_BaseActivity {    @ViewInject(R.id.mainlly)    private LinearLayout mainlly;    @ViewInject(R.id.emptyLayout)    protected EmptyLayout mErrorLayout;    @ViewInject(R.id.searchedittext)    protected EditText searchedittext;    PatientModel patientModel;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        EventBus.getDefault().register(this);        initView();        initData();    }    @Override    protected void onDestroy() {        super.onDestroy();        EventBus.getDefault().unregister(this);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu_worktask, menu);        menu.findItem(R.id.action_right).setTitle("保存").setIcon(R.mipmap.icon_check);        return super.onCreateOptionsMenu(menu);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item.getItemId() == R.id.action_right) {            StringBuilder sb = new StringBuilder();            for (int i = 0; i < addStringList.size(); i++) {                String s = addStringList.get(i).getTemplateContent();                if(!TextUtils.isEmpty(s)) {                    sb.append(s);                    if(i!=addStringList.size()-1) {                        sb.append("\n");                    }                }            }            EventBus.getDefault().post(new EBPathography(sb.toString()));            finish();            return true;        } else {            return super.onOptionsItemSelected(item);        }    }    protected void initView() {        mRepleace_toolbar.setVisibility(View.VISIBLE);        mToolbar.setVisibility(View.VISIBLE);        patientModel = (PatientModel) getIntent().getSerializableExtra(BundleCommon.KEY_Patient);        if (patientModel != null) {            String sex = "";            if (patientModel.getSex() != null) {                DictionaryModel dm = DictionalDao.getDictionaryByTypeId(1, patientModel.getSex());                if (dm != null) {                    sex = dm.getDisplayname();                }            }            String age = patientModel.getAge() != null ? patientModel.getAge()+ "岁" : "";            String sickebed = patientModel.getSickbedNo()!=null?patientModel.getSickbedNo() +"床 " :"";            String title =sickebed + patientModel.getName() + " " + age + " " + sex;            mRepleace_toolbar.setText(title);        }        mToolbar.setTitle("");        setToolbarBackClose(R.mipmap.icon_close);        mToolbar.inflateMenu(R.menu.menu_worktask);        searchedittext.addTextChangedListener(textWatcher);    }    protected void initData() {        mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING);        mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING);                getData();            }        });        getData();    }    private TextWatcher textWatcher = new TextWatcher() {        @Override        public void onTextChanged(CharSequence s, int start, int before,                                  int count) {        }        @Override        public void beforeTextChanged(CharSequence s, int start, int count,                                      int after) {        }        @Override        public void afterTextChanged(Editable s) {            String input = s.toString();            if(input.equals("")){                mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT);                genaralListView(wraplist);            }else{                mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING);                mHandle.sendEmptyMessageDelayed(1,500);            }        }    };    Handler mHandle = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            searchB();        }    };    public void searchB() {        String searchString = searchedittext.getText().toString();        if(searchString.equals("")) return;        if(wraplist==null) return;        List<PathographyTemplate> searchList = new ArrayList<>();        for(PathographyTemplate pt : wraplist) {            for(PathographyTemplateModel model : pt.getSameList()) {                if(model.getKeyword()!=null && model.getKeyword().contains(searchString)                        || model.getTemplateContent()!=null && model.getTemplateContent().contains(searchString)) {                    searchList.add(pt);                }            }        }        if(searchList.size()>0) {            mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT);            genaralListView(searchList);        } else {            mErrorLayout.setErrorType(EmptyLayout.NODATA);            mErrorLayout.setNoDataContent("未找到匹配数据");        }    }    @Override    public void onResume() {        super.onResume();    }    List<PathographyTemplateModel> addStringList = new ArrayList<>();    List<PathographyTemplate> wraplist;    private void getData() {        responseCall = appContext.getAPIService().getAllPathographytemplate();        responseCall.enqueue(new Callback<List<PathographyTemplateModel>>() {            @Override            public void onResponse(Call<List<PathographyTemplateModel>> call, Response<List<PathographyTemplateModel>> response) {                int code = response.code();                if (code == 200) {                    if (response.body() != null) {                        List<PathographyTemplateModel> list = response.body();                        wraplist = SortAllPathographyTemplate(list);                        genaralListView(wraplist);                        mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT);                    } else {                        mErrorLayout.setErrorType(EmptyLayout.NODATA);                    }                } else {                    mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR);                }            }            @Override            public void onFailure(Call<List<PathographyTemplateModel>> call, Throwable t) {                if (isFinishing()) return;                UIHelper.snackBarMessage(mToolbar, "网络超时");                mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR);            }        });    }    /**     * 生成数据列表     * @param wraplist     */    private void genaralListView(List<PathographyTemplate> wraplist) {        if(wraplist==null) return;        mainlly.removeAllViews();        for (final PathographyTemplate template : wraplist) {            LinearLayout child = (LinearLayout) getLayoutInflater().inflate(R.layout.pathgraphy_item, null, false);            final TextView content = (TextView) child.findViewById(R.id.content);            final CheckBox checkBox = (CheckBox) child.findViewById(R.id.checkBox);            final LinearLayout mainlly_item = (LinearLayout) child.findViewById(R.id.mainlly_item);            content.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    checkBox.setChecked(checkBox.isChecked() ? false : true);                    if(checkBox.isChecked()) {                        UIHelper.setSubChildCheckBoxTrue(mainlly_item);                    } else {                        UIHelper.setSubChildCheckBoxFalse(mainlly_item);                    }                }            });            checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {                @Override                public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {                    if (isChecked) {                        List<PathographyTemplateModel> templateSameList = template.getSameList();                        if (templateSameList != null && templateSameList.size() > 0) {                            for (PathographyTemplateModel model : templateSameList) {                                if (!addStringList.contains(model)) {                                    addStringList.add(model);                                }                            }                        }                        UIHelper.setSubChildCheckBoxTrue(mainlly_item);                    } else {                        List<PathographyTemplateModel> templateSameList = template.getSameList();                        if (templateSameList != null && templateSameList.size() > 0) {                            templateSameList.iterator();                            for (Iterator<PathographyTemplateModel> iterator = templateSameList.iterator(); iterator.hasNext();) {                                PathographyTemplateModel m = iterator.next();                                if (addStringList.contains(m)) {                                    addStringList.remove(m);                                }                            }                        }                        UIHelper.setSubChildCheckBoxFalse(mainlly_item);                    }                }            });            if (TextUtils.isEmpty(template.getTemmplateName())) {                content.setText("未分类");            } else {                content.setText(template.getTemmplateName());            }            for (final PathographyTemplateModel model : template.getSameList()) {                LinearLayout child_item = (LinearLayout) getLayoutInflater().inflate(R.layout.pathgraphy_item_item, null, false);                final TextView content_item = (TextView) child_item.findViewById(R.id.content);                final CheckBox checkBox_item = (CheckBox) child_item.findViewById(R.id.checkBox);                if (TextUtils.isEmpty(model.getTemplateContent())) {                    content_item.setText("无内容");                } else {                    content_item.setText(model.getTemplateContent());                }                content_item.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View view) {                        checkBox_item.setChecked(checkBox_item.isChecked() ? false : true);                    }                });                checkBox_item.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {                    @Override                    public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {                        if (isChecked) {                            if (!addStringList.contains(model)) {                                addStringList.add(model);                            }                        } else {                            if (addStringList.contains(model)) {                                addStringList.remove(model);                            }                        }                    }                });                mainlly_item.addView(child_item);            }            mainlly.addView(child);        }    }    public List<PathographyTemplate> SortAllPathographyTemplate(List<PathographyTemplateModel> allSimples) {        List<PathographyTemplate> custWorkItems = new ArrayList<PathographyTemplate>();        // 游标index        int index = 0, j = 0;        int size = allSimples.size();        while (index < size) {            PathographyTemplate custWorkItem = new PathographyTemplate();            String t = allSimples.get(index).getTemplateType();            custWorkItem.setTemmplateName(t);            ArrayList<PathographyTemplateModel> children = new ArrayList<PathographyTemplateModel>();            for (j = index; j < size; j++) {                PathographyTemplateModel c = allSimples.get(j);                String child = c.getTemplateType();                if (t.equals(child)) {                    // 同时记录该重复出现的元素在原数组中的下标j                    children.add(c);                } else {                    break;                }            }            // 往后推进游标index            index = j;            //Collections.sort(children);            custWorkItem.setSameList(children);            custWorkItems.add(custWorkItem);        }        // Collections.sort(custWorkItems);        return custWorkItems;    }    @Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行    public void onUserEvent(Integer event) {    }    @Event(type = View.OnClickListener.class, value = R.id.tv_insertPathography)    private void tv_insertPathography(View view) {        UIHelper.snackBarMessage(view, "ss");    }}
//
长按多选
import android.os.Bundle;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.view.ActionMode;import android.support.v7.widget.DefaultItemAnimator;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import org.greenrobot.eventbus.EventBus;import org.greenrobot.eventbus.Subscribe;import org.greenrobot.eventbus.ThreadMode;import org.xutils.view.annotation.ContentView;import org.xutils.view.annotation.Event;import org.xutils.view.annotation.ViewInject;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;@ContentView(R.layout.ta_doctoradvice_bypatient) public class TA_AssessRecord extends TA_BaseActivity implements SwipeRefreshLayout.OnRefreshListener , ActionMode.Callback{    @ViewInject(R.id.swiperefreshlayout)    SwipeRefreshLayout mSwipeRefreshLayout;    @ViewInject(R.id.recycler)    RecyclerView mRecycler;    @ViewInject(R.id.emptyLayout)    protected EmptyLayout mErrorLayout;    AssessRecordItemAdapter mPatientsAdapter;    PatientModel patientModel;    private ActionMode actionMode;    public static TA_AssessRecord instance;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        EventBus.getDefault().register(this);        instance = this;        initView();        initData();    }    @Override    protected void onDestroy() {        super.onDestroy();        EventBus.getDefault().unregister(this);    }    protected void initView() {        mRepleace_toolbar.setVisibility(View.VISIBLE);        mToolbar.setVisibility(View.VISIBLE);        patientModel = (PatientModel) getIntent().getSerializableExtra(BundleCommon.KEY_Patient);        if (patientModel != null) {            String sex = "";            if (patientModel.getSex() != null) {                DictionaryModel dm = DictionalDao.getDictionaryByTypeId(1, patientModel.getSex());                if (dm != null) {                    sex = dm.getDisplayname();                }            }            String age = patientModel.getAge() != null ? patientModel.getAge()+ "岁" : "";            String sickebed = patientModel.getSickbedNo()!=null?patientModel.getSickbedNo() +"床 " :"";            String title =sickebed + patientModel.getName() + " " + age + " " + sex;            mRepleace_toolbar.setText(title);        }        mToolbar.setTitle("");        setToolbarBackClose(R.mipmap.icon_close);        mToolbar.inflateMenu(R.menu.menu_worktask);    }    protected void initData() {        mSwipeRefreshLayout.setOnRefreshListener(this);        mSwipeRefreshLayout.setColorSchemeResources(                R.color.swiperefresh_color1, R.color.swiperefresh_color2,                R.color.swiperefresh_color3, R.color.swiperefresh_color4);        LinearLayoutManager layoutManager = new LinearLayoutManager(this);        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);        mRecycler.setLayoutManager(layoutManager);        mRecycler.setItemAnimator(new DefaultItemAnimator());        //设置adapter        mPatientsAdapter = new AssessRecordItemAdapter();        AlphaAnimatorAdapter animatorAdapter = new AlphaAnimatorAdapter(mPatientsAdapter, mRecycler);        mRecycler.setAdapter(animatorAdapter);        //mListView.setHasFixedSize(true);        mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING);        mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING);                onRefresh();            }        });        onRefresh();        mPatientsAdapter.setOnItemClickLitener(new ListBaseAdapter.OnItemClickLitener() {            @Override            public void onItemClick(View view, int position) {                if (actionMode != null) {                    // 如果当前处于多选状态,则进入多选状态的逻辑                    // 维护当前已选的position                    addOrRemove(position);                } else {                    // 如果不是多选状态,则进入点击事件的业务逻辑                    final NursingDocModel model = (NursingDocModel) mPatientsAdapter.mDatas.get(position);                    EventBus.getDefault().post(new EBPathography(model.getName()+":"+model.getScoreTotal()+","));                    finish();                }            }            @Override            public void onItemLongClick(View view, int position) {                if (actionMode == null) {                    actionMode = startSupportActionMode(TA_AssessRecord.this);                }            }        });    }    private void getData() {        Call<List<NursingDocModel>> toServer = appContext.getAPIService().getNursingDoc(patientModel.getId());        toServer.enqueue(new Callback<List<NursingDocModel>>() {            @Override            public void onResponse(Call<List<NursingDocModel>> call, Response<List<NursingDocModel>> response) {                if(pdialog!=null) {                    pdialog.dismiss();                }                setSwipeRefreshLoadedState();                if(response.code()==200) {                    List<NursingDocModel> dto = response.body();                    remove1(dto);                    if(dto!=null && dto.size()>0) {                        mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT);                        mPatientsAdapter.clear();                        Collections.sort(dto);                        Collections.reverse(dto);                        mPatientsAdapter.mDatas.addAll(dto);                        mPatientsAdapter.notifyDataSetChanged();                    } else {                        mErrorLayout.setErrorType(EmptyLayout.NODATA);                    }                }            }            private void remove1(List<NursingDocModel> dto) {                if(dto==null)return;                Iterator<NursingDocModel> it =dto.iterator();                while(it.hasNext()) {                    NursingDocModel model = it.next();                    if(model.getSourceType()!=null&&model.getSourceType().equals("1")) {                        it.remove();                    }                    if(model.getSourceType()!=null&&model.getSourceType().equals("2")) {                        it.remove();                    }                }            }            @Override            public void onFailure(Call<List<NursingDocModel>> call, Throwable t) {                setSwipeRefreshLoadedState();                UIHelper.snackBarMessage(mToolbar, "网络超时");                mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR);                if(pdialog!=null) {                    pdialog.dismiss();                }            }        });    }    /**     * 设置顶部正在加载的状态     */    public void setSwipeRefreshLoadingState() {        if (mSwipeRefreshLayout != null) {            mSwipeRefreshLayout.setRefreshing(true);            // 防止多次重复刷新            mSwipeRefreshLayout.setEnabled(false);        }    }    /**     * 设置顶部加载完毕的状态     */    public void setSwipeRefreshLoadedState() {        if (mSwipeRefreshLayout != null) {            mSwipeRefreshLayout.setRefreshing(false);            mSwipeRefreshLayout.setEnabled(true);        }    }    @Override    public void onResume() {        super.onResume();    }    @Override    public void onRefresh() {        setSwipeRefreshLoadingState();        getData();    }    @Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行    public void onUserEvent(Integer event) {    }    public Set<Integer> positionSet = new HashSet<>();    private void addOrRemove(int position) {        if (positionSet.contains(position)) {            // 如果包含,则撤销选择            positionSet.remove(position);        } else {            // 如果不包含,则添加            positionSet.add(position);        }        if (positionSet.size() == 0) {            // 如果没有选中任何的item,则退出多选模式            actionMode.finish();        } else {            // 设置ActionMode标题            actionMode.setTitle(positionSet.size() + " 已选择");            // 更新列表界面,否则无法显示已选的item            mPatientsAdapter.notifyDataSetChanged();        }    }    @Event(type = View.OnClickListener.class, value = R.id.rrl_yz)    private void rrl_yz(View view) {        UIHelper.snackBarMessage(view, "ss");    }    @Override    public boolean onCreateActionMode(ActionMode mode, Menu menu) {        if (actionMode == null) {            actionMode = mode;            MenuInflater inflater = mode.getMenuInflater();            inflater.inflate(R.menu.menu_worktask, menu);            menu.findItem(R.id.action_right).setTitle("保存").setIcon(R.mipmap.icon_check);            return true;        } else {            return false;        }    }    @Override    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {        return false;    }    @Override    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {        switch (item.getItemId()) {            case R.id.action_right:                List<NursingDocModel> valueSet = new ArrayList<>();                for (int position : positionSet) {                    valueSet.add((NursingDocModel) mPatientsAdapter.getData(position));                }                StringBuilder sb = new StringBuilder();                int size = valueSet.size();                for (int i = 0; i < size; i++) {                    NursingDocModel model = (NursingDocModel) mPatientsAdapter.getData(i);                    String s = model.getName()+":"+model.getScoreTotal();                    if(i!=size-1) {                        s.concat(",");                    }                    sb.append(s);                }                mode.finish();                EventBus.getDefault().post(new EBPathography(sb.toString()));                finish();                return true;            default:                return false;        }    }    @Override    public void onDestroyActionMode(ActionMode mode) {        actionMode = null;        positionSet.clear();        mPatientsAdapter.notifyDataSetChanged();    }}


                                             
0 0
原创粉丝点击