首页 > 如何重构一个spinner 获取本地数据库数据,然后显示的代码

如何重构一个spinner 获取本地数据库数据,然后显示的代码

我一个布局里需要有好几个spinner 控件,都是从数据库获取数据显示,

private void initbuildstationtype() {
        final List<Dictionary> dictionaryList = myDbUtil.findDictionaryByType("check_result");
        insetDictionaryList(dictionaryList);
        mArrayAdapterDictionary = new ArrayAdapter<Dictionary>(mContext,
                android.R.layout.simple_spinner_item, dictionaryList);
        mArrayAdapterDictionary
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mSpinnerCreateType.setAdapter(mArrayAdapterDictionary);
        mSpinnerCreateType.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                int key = dictionaryList.get(position).getDkey();
                param.put("checkresult", String.valueOf(key));
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }

这是一个spinner 的初始化数据的方法,还有好几个这样的spinner,其他页面也有这样的spinner,如何重构现在的代码呢,感觉这样的代码 太屎了,希望大神,说一下如何重构我现有的代码呢???


优化建议:1、代码重用,2、封装代码。
你可以尝试这样写:

private <V> void showSpinner(List<V> datas, OnItemSelectedListener listener) {
    ArrayAdapter adapter = new ArrayAdapter<V>(mContext), android.R.layout.simple_spinner_item, datas);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner spinner = new Spinner(mContext);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(listener);
}

在需要的地方调用即可:

List<Dictionary> dictionaryList = myDbUtil.findDictionaryByType("check_result");
insetDictionaryList(dictionaryList);

showSpinner(dictionaryList, listener);
【热门文章】
【热门文章】