微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spinner 填充 SQLite 依赖于另一个 Spinner

如何解决Spinner 填充 SQLite 依赖于另一个 Spinner

我的应用程序中有 3 个微调器,我必须使用来自 Android Studio 上的数据库 (sqlite) 的数据填充每个微调器。

这是应用程序的渲染: screen shot

我的第一个微调器(公社,英文:City)填充了我的数据库

我的问题:

为了填充我的第二个微调器,我想根据我的第一个微调器的选择包含我的数据库中的数据。

如何返回我的第一个微调器的值以查询我的数据库获取第二个微调器的值?

代码

/** 从 sqlite 数据库加载微调器数据的函数 */

private void loadSpinnerData() {
    BddCeos db = new BddCeos(getApplicationContext());
    List<String> labelsCommune = db.getAllCommune();
    List<String> labelsPoste = db.getAllPoste();
    List<String> labelsRef = db.getAllRef();

    // Creating adapter for spinner
    ArrayAdapter<String> dataAdapterCommune = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,labelsCommune);
    ArrayAdapter<String> dataAdapterPoste = new ArrayAdapter<String>(this,labelsPoste);
    ArrayAdapter<String> dataAdapterRef = new ArrayAdapter<String>(this,labelsRef);

    // attaching data adapter to spinner
    spinner_input_commune.setAdapter(dataAdapterCommune);
    spinner_input_nom_poste.setAdapter(dataAdapterPoste);
    spinner_input_ref_wapiti.setAdapter(dataAdapterRef);

}



@Override
public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {

    // On selecting a spinner item
    String Labels = parent.getItemAtPosition(position).toString();

    // Showing selected spinner item
    Toast.makeText(parent.getContext(),"Vous avez sélectionné : " + Labels,Toast.LENGTH_LONG).show();
}

@Override
public void onnothingSelected(AdapterView<?> arg0) {
    // Todo Auto-generated method stub
}

}

解决方法

我自己找到了解决方案:

spinner_input_commune.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView,View selectedItemView,int position,long id) {
                BddCeos db = new BddCeos(getApplicationContext());

                List<String> labelsPoste = db.getFindPosteByCommune(spinner_input_commune.getSelectedItem().toString());
                ArrayAdapter<String> dataAdapterPoste = new ArrayAdapter<String>(Formulaire.this,android.R.layout.simple_spinner_item,labelsPoste);
                spinner_input_nom_poste.setAdapter(dataAdapterPoste);
            }

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

        });

spinner_input_nom_poste.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView,long id) {
                BddCeos db = new BddCeos(getApplicationContext());

                List<String> labelsRef = db.getFindRefWapitiByPost(spinner_input_nom_poste.getSelectedItem().toString());
                ArrayAdapter<String> dataAdapterRef = new ArrayAdapter<String>(Formulaire.this,labelsRef);
                spinner_input_ref_wapiti.setAdapter(dataAdapterRef);
            }

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

        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。