2

私のアプリケーションでは、アクティビティの 1 つに 2 つのAutoCompleteTextView. 両方の候補リストから値を選択し、[OK] ボタンを押します。[OK] ボタンを押すと、AutoCompleteTextView 値の結果ベースを表示するための新しいアクティビティが表示されます。しかし、[戻る] ボタンを押して、2 つの AutoCompleteTextView Textview を持つアクティビティに戻ると、両方とも提案リストの表示を開始します。提案リストには、既にtextViewsにあるアイテムが1つしか含まれていないため、提案リストを表示しないでください。アダプターを 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();
    }
4

1 に答える 1

0

別のActivity onResume()メソッドから戻ると、呼び出されています。したがって、設定したいものは何でもonResume()メソッドAdapterで設定する必要があります。そして、データが変更されたことをアダプターに通知するだけです。それでおしまい :)

EDITED 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);
}
于 2013-01-03T04:36:05.033 に答える