在我的应用程序中,其中一个活动有两个AutoCompleteTextView
。我从两个建议列表中选择值并按下OK按钮.OK按钮向我显示一个新活动,用于显示AutoCompleteTextView值的结果基础。但是如果我现在按下后退按钮并返回到具有两个AutoCompleteTextView Textview的活动,他们都开始显示建议清单。我希望他们不要显示建议清单,因为建议清单只包含单一项目已经在textViews中。我尝试将适配器设置为NULL,然后设置回原始数组,但这并不会阻止AutoCompleteTextView显示建议列表。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.find_path);
initializeElements();
GetAllPathList();
adapter = new ArrayAdapter<Path>(this, R.layout.dropdown_list_item,
pathArray);
startPathAutocomplete.setAdapter(adapter);
endPathAutocomplete.setAdapter(adapter);
}
public class Path { private String _id; private String pathName; private String pathLine; public Station(String _id, String pathName, String pathLine) { this._id = _id; this.pathName= pathName; this.pathLine = pathLine; } //getter setter methods for variables }
@Override
protected void onResume() {
super.onResume();
stationArray = null;
adapter.notifyDataSetChanged();
}
答案 0 :(得分:0)
当您从另一个Activity
返回时,已调用onResume()方法。因此,无论您想要设置为Adapter
,都应在 onResume()方法中进行设置。并且只需通知适配器数据已更改。多数民众赞成:)
已编辑对pathArray和stationArray的思考是相同的
@Override
protected void onResume() {
super.onResume();
stationArray = null;
adapter = new ArrayAdapter<Path>(this, R.layout.dropdown_list_item,
stationArray);
adapter.notifyDataSetChanged();
startPathAutocomplete.setAdapter(adapter);
endPathAutocomplete.setAdapter(adapter);
}