我正在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
的方法。如果我改变了文字就没有填充。
你能否告诉我我犯了哪个错误。
任何帮助将不胜感激。提前致谢
答案 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