1

AutoCompleteTextView を ListView ヘッダーとして設定しようとしていますが、そうするとオートコンプリート ボックスが表示されません。オートコンプリート ビューを作成するためのコードは、Google ドキュメントのHello, AutoCompleteチュートリアルから直接取得されます。COUNTRIES 配列もそこから来ています。

protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ListView myList = (ListView) findViewById(R.id.ResultList);

LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
TableLayout searchHeader = (TableLayout) layoutInflater.inflate(R.layout.search_header, null); 
myList.addHeaderView(searchHeader, null, false);

final AutoCompleteTextView textView = (AutoCompleteTextView) myList.findViewById(R.id.edit);
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_dropdown_item_1line, COUNTRIES);
textView.setAdapter(searchAdapter);
textView.setThreshold(1);

        //Dummy data for listview.

String[] listContent = {
        "test", "test", "test", "test",
        "test", "test", "test", "test"
};
ArrayAdapter<String> adapter = new SearchResultAdapter(this, listContent);
myList.setAdapter(adapter);

}

テストとして、TextChangedListener を追加して、ダイアログを強制的に表示しようとしました

    textView.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            textView.showDropDown();
        }
    });

ダイアログが表示されますが、すぐに閉じられます。リスト ビューからの何らかのイベント バブリングがこれを引き起こしているのだろうか?

4

2 に答える 2

0

autocompletetextview を使用して XML ファイルで使用すると、役立つ場合があります

于 2014-09-26T08:05:34.803 に答える