首页 > 解决方案 > 如果元素与 Spinner 的 onItemSelected () 元素相关联,则 SetText () 方法不起作用

问题描述

我有一个具有 EditText 和 Spinner 的活动,在其中选择 Spinner 的元素时,所选元素必须显示在 EditText 中。在那之前一切都很顺利。但是,如果我想在 Spinner 的 onItemSelected 方法之外为该 EditText 分配一个值,它根本不会显示我使用 setText 方法分配给它的字符串。

deps = new ArrayList<>();
cargarDeps();
deps.add("");


adapterSPDep = new ArrayAdapter<String>(this, R.layout.lista_sp, deps);
spDep.setAdapter(adapterSPDep);
spDep.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

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

            auxDep = (String) adapterView.getItemAtPosition(pos);

            txtDep.setText(auxDep);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            // txtDep.setText(auxDep);

        }
    });

该代码在我的活动的 onCreate 中,我的方法“cargaDeps()”链接到一个 Web 服务,该服务获取所有存在的部门,我将其保存在 ArrayList“deps”中。在 Spinner 的 onItemSelected () 方法中,我指定了我的 EditText 被选中的内容。但是当我调用这个方法时:

public void rellenar(String[] campos) {


    txtNum.setText(campos[4]);
    txtFecha.setText(campos[1]);
    txtHora.setText(campos[2]);
    txtDes.setText(campos[3]);
    txtTipo.setText(campos[4]);


    txtDep.setText(auxDep);


    txtReporta.setText(campos[6]);
    txtAtiende.setText(campos[7]);


}

在 txtDep.setText (auxDep); 没有赋值。

标签: javaandroid

解决方案


创建一个全局字符串值并将您想要从微调器获取的值分配给字符串值。


推荐阅读