我可以使用一种方法用相同的数据填充许多微调器吗?

问题描述 投票:0回答:2

嗨,我只想到纺纱厂。我想知道,如果我想将相同的数据传递给多个微调器,我可以用一种方法吗?我的意思是将一个适配器连接到许多微调器,或者我必须在其他方法中进行?这是一个简单的例子。假设用户必须从这些微调器中选择三个星期的工作日

public void first() {
    List<String> data = db.getBodyParts();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    firstSpinner.setAdapter(adapter);


    firstSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });
}

public void second() {
    List<String> data = db.getBodyParts();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    secondSpinner.setAdapter(adapter);


    secondSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });
}
android sqlite spinner
2个回答
0
投票

您不需要重复的代码,只需将微调器作为参数发送到您的方法中,如下所示:

public void fillSpinner(Spinner spinner) {
    List<String> data = db.getBodyParts();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);


    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });
}

用法是这样的:

fillSpinner(firstSpinner);

要么

fillSpinner(secondSpinner);

使用此方法,您可以使用无限数量的微调器而无需重复的代码。


-1
投票

尝试:

public void first() {
    List<String> data = db.getBodyParts();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    firstSpinner.setAdapter(adapter);


    firstSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });

    secondSpinner.setAdapter(adapter);


    secondSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.