我该如何刷新AutoCompleteTextView组件?

时间:2013-03-20 00:40:54

标签: java android android-holo-everywhere

我正在使用这段代码:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                Cidade cidade = (Cidade) arg0.getSelectedItem();
                List<Bairro> bairros = RachandoTaxiController.getInstancia().getBairros(cidade);
                myAutoComplete = (AutoCompleteTextView) getView().findViewById(R.id.completeOrigem);
                myAutoComplete.addTextChangedListener(textWatcher);
                myAutoComplete.setAdapter(new ArrayAdapter<Bairro>(getActivity(), android.R.layout.simple_dropdown_item_1line, bairros));

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

            }
        });

我有一个Spinner,当我选择一个Item时,我应该根据用户选择的Spinner设置我的AutoCompleteTextView(来自holoeverywhere)。 如果我静态地这样做,它是有效的。我的autocompletetextview按预期回答。但当我把它放入onItemSelected时,我的autocompletetextview仍然喜欢edittext ....没有任何反应...... 我该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为你应该把

myAutoCompl = (AutoCompleteTextView) getView().findViewById(R.id.completeOrigem);
myAutoComplete.addTextChangedListener(textWatcher);

OnItemClickListener 之外的这些行。 每当您单击item时,都会返回findViewById()的新View实例。 TextChangedListener也是如此。因此,尝试将行放在外面可能是 onCreate()方法的最佳选择,它应该有效。