9

webserviceから文字列のリストを取得しています。AutoCompleteTextFieldフィルタに関係なく、AutoCompleteTextFieldにリストしたいと思います。AutoCompleteTextView - フィルタリングを無効にする

どうすればよいですか?内部フィルタリングを簡単に無効にする方法があります(好ましくはサブクラス化なし) すべての結果をArrayAdapterにロードしましたが、フィルタリングのためにその一部が表示されないという問題があります。

私が間違った方向に向いている場合は、正しい方向を指してください。

答えて

1

最終的にはArrayAdapterをサブクラス化し、フィルタを無効にしてgetFilterメソッドを無効にし、「」を「テキスト変更」イベント中に作成しました。

+0

こんにちは、ありがとうございました。あなたが関連するコードを投稿できるなら、あなたに感謝します。事前にありがとう –

+0

いくつかのコードを追加したり、ソリューションを記述してください。 私は完全にこれに固執しています。 –

+0

@Rajivadadavはすぐになります –

14

おそらく@Alonは、の代わりにArrayAdapterをサブクラス化することを意味しました。 getFilter()メソッドでは、フィルタリングをまったく実行しないカスタムフィルタを返す必要があります(そのperformFiltering())。おそらくパフォーマンスが問題になる可能性があります。テキストエディットから派生し、独自の補完ポップアップを実装するのが最善の方法です。しかし、これは今まで私にとってはあまりにも多くの面倒です。最後に、私は次のようなことをしてくれました。フィードバックは高く評価されます。

public class KArrayAdapter<T> 
extends ArrayAdapter<T> 
{ 
    private Filter filter = new KNoFilter(); 
    public List<T> items; 

    @Override 
    public Filter getFilter() { 
     return filter; 
    } 

    public KArrayAdapter(Context context, int textViewResourceId, 
      List<T> objects) { 
     super(context, textViewResourceId, objects); 
     Log.v("Krzys", "Adapter created " + filter); 
     items = objects; 
    } 

    private class KNoFilter extends Filter { 

     @Override 
     protected FilterResults performFiltering(CharSequence arg0) { 
      FilterResults result = new FilterResults(); 
       result.values = items; 
       result.count = items.size(); 
      return result; 
     } 

     @Override 
     protected void publishResults(CharSequence arg0, FilterResults arg1) { 
      notifyDataSetChanged(); 
     } 
    } 
} 

希望します。

関連する問題