android - 如何重构一个spinner 获取本地数据库数据,然后显示的代码
PHPz
PHPz 2017-04-17 13:33:52
[Android讨论组]

我一个布局里需要有好几个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,如何重构现在的代码呢,感觉这样的代码 太屎了,希望大神,说一下如何重构我现有的代码呢???

PHPz
PHPz

学习是最好的投资!

全部回复(1)
阿神

优化建议: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);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号