私の問題は次のとおりです。notifyDataSetChanged()が呼び出されたときにAutoCompleteTextViewのドロップダウンリストの自動開くを無効にする方法は?
私のAndroidアプリケーションでは、私はAutoCompleteTextViewを使用し、5秒ごとにアイテムリストを更新します。 notifyDataSetChanged()を呼び出すと、リフレッシュが機能しています。しかし、ここに何かを入力すると、一致する項目のリストが表示され、別のスレッドがリストを更新してnotifyDataSetChanged()ドロップダウンリストを呼び出すと、手動で閉じます(前に閉じていても)。リストが長いと画面全体が表示され、閉じた後に別の5秒表示されるので、本当に面倒です。 notifyDataSetChanged()を呼び出した直後にdismissDropDown()を試みましたが、何の効果もありませんでした。ドロップダウンが少し遅れて表示されているようです。ユーザーがリストを閉じていないと、更新後に閉じられるため、修正するのも良い方法ではありません。また、焦点を離そうとしました - まだ効果はありません。
私は方法が必要です: ドロップダウンリストが自動的に表示されないで私のアイテムリストを更新します(ただし、notifyDataSetChanged()経由)。
が
歓声
、あなたが役立つことを願って、私は最終的に、それをやりました。私はここに解決策を掲示します、多分誰かがこれを使うでしょう。
ドロップダウンが表示されているかどうかを確認するには、次の
final boolean isVisible = autocomplete.isPopupShowing();
次に、notifyDataSetChanged()、最後に
を呼び出す:
new Handler().post(new Runnable(){
@Override
public void run() {
if(!isVisible){
autocomplete.dismissDropDown();
}
}
});
これは完璧に動作します。
automocopleteアダプタの更新方法は? –