如何在调用onResume()活动时阻止AutoCompleteTextView显示建议?

时间:2013-01-03 02:59:38

标签: android textview autocompletetextview

在我的应用程序中,其中一个活动有两个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();
    }

1 个答案:

答案 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);
}