AutoCompleteTextView适配器不是下拉onTextChange?

时间:2016-12-24 11:42:20

标签: android autocomplete android-arrayadapter

我正在AutoCompleteTextView工作。适配器不会根据我的OnTextChangeListener填充任何数据,它与初始化时的第一次一样。

  public void fn_LoadLrnoDetail(ArrayList<String> lst_Name) {
    try {
        progressBar.showDialog();
        Adapter = new ArrayAdapter<String>(getContext(),
                android.R.layout.simple_dropdown_item_1line, new ArrayList<String>());

        autotxtLrno.setAdapter(Adapter);

        if (lst_Name != null && lst_Name.size() > 0) {
            Adapter = new ArrayAdapter<String>(getContext(),
                    android.R.layout.simple_dropdown_item_1line, lst_Name);
            autotxtLrno.setAdapter(Adapter);
            Adapter.notifyDataSetChanged();
        }
        progressBar.hideDialog();
    } catch (Exception e) {
        Log.e(TAG, "fn_LoadLrnoDetail: " + e.getLocalizedMessage());
    }
}

这是AutoCompleteTextView的方法。问题是第一次出现的数据,即使数据根据OnTextChangeListener发生变化,它也会保持不变。

    autotxtLrno.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            halfClear();
            custom_list.clear();
            Log.e(TAG, "onTextChanged: " + lst_Name.size() + "  " + lst_Name);
            for (String custom : lst_Name) {
                if (custom.contains(autotxtLrno.getText().toString())) {
                    custom_list.add(custom);
                }

            }
            Log.e(TAG, "custom: " + custom_list + "  " + custom_list.size());
            if (custom_list.size() > 0) {
                fn_LoadLrnoDetail(custom_list);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
            Adapter.notifyDataSetChanged();
        }
    });

这是OnTextChangedListener的方法。如果我改变了文字就没有填充。 你能否告诉我我犯了哪个错误。

任何帮助将不胜感激。提前致谢

1 个答案:

答案 0 :(得分:0)

  

问题在于第一次出现的数据,它甚至保持不变   数据根据OnTextChangeListener

而变化

解决方案

每次数据更改时,您都在创建新适配器。

.data 
fin dd 5.0

.code
main proc

fld fin
fmul fin  ;to multiply fin with fin 
fstp dword [eax]   ;cannot mov result in eax
call writefloat

exit 
main EndP
end main

而是将adpater初始化为oncreate方法clear并将适配器设置为listView并调用 这样的 if (lst_Name != null && lst_Name.size() > 0) { This line--> Adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_dropdown_item_1line, lst_Name); autotxtLrno.setAdapter(Adapter); Adapter.notifyDataSetChanged(); 方法

notifyDataSetChanged