0

タイトルが示すように、7 つのオプションでフィルターを使用したいもののリストを取得しました。

これらすべてのオプションをケースに入れたい場合は、5040 の可能性を意味する 7*6*5*4*3*2*1 を見てみましょう。右?

では、これほど大きな switch ステートメントにならないようにするにはどうすればよいでしょうか。

私はグーグルで周りを見てきましたが、解決策を見つけることができませんでした。のような:アンドロイド複数のオプションのケースアンドロイド フィルター検索リストビュー

4

4 に答える 4

0

このように使用します:

 List<String> list = new ArrayList<String>(Arrays.asList(new String[] 
                              {"7", "6","3", "5"})); //7*6*5*$*3*2*1
       System.out.println("List Before: " + list);
    for (Iterator<String> it=list.iterator(); it.hasNext();) {
if (!it.next().contains("How"))
    it.remove(); // NOTE: Iterator's remove method, not ArrayList's, is used.
  }
    System.out.println("List After: " + list);
于 2013-10-25T12:45:07.277 に答える
0

この方法を試してください:

  @Override
public Filter getFilter() {

    Filter filter = new Filter() {

        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {

            modelValues = (ArrayList<String>) results.values; // has

            notifyDataSetChanged();
        }

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults results = new FilterResults();
            List<Model> FilteredArrList = new ArrayList<Model>();

            if (mOriginalValues == null) {
                mOriginalValues = new ArrayList<Model>(modelValues); // saves

            }

            /********
             * 
             * If constraint(CharSequence that is received) is null returns
             * the mOriginalValues(Original) values else does the Filtering
             * and returns FilteredArrList(Filtered)
             * 
             ********/
            if (constraint == null || constraint.length() == 0) {

                // set the Original result to return
                results.count = mOriginalValues.size();
                results.values = mOriginalValues;
            } else {
                Locale locale = Locale.getDefault();
                constraint = constraint.toString().toLowerCase(locale);
                for (String model : mOriginalValues) {


                    String data =model;
                    if (data.toLowerCase(locale).contains("7".toString())||data.toLowerCase(locale).contains("6".toString())||data.toLowerCase(locale).contains("5".toString())||data.toLowerCase(locale).contains("4".toString())) {

                        FilteredArrList.add(modelMyMall);
                    }
                }
                // set the Filtered result to return
                results.count = FilteredArrList.size();
                results.values = FilteredArrList;

            }
            return results;
        }
    };
    return filter;
}
于 2013-10-25T12:10:09.233 に答える