Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为名字和姓氏应用搜索筛选器_Android_Mysql_Sqlite - Fatal编程技术网

Android 如何为名字和姓氏应用搜索筛选器

Android 如何为名字和姓氏应用搜索筛选器,android,mysql,sqlite,Android,Mysql,Sqlite,我想在联系人应用程序中应用Android mobile的搜索过滤器。例如,有一个名为Aakash sharma的联系人。在搜索栏中,我按下Aakash中的starting-later,即aa,空格后按last-name,即sh。请查收附件,以便您能理解面糊。请帮帮我。事先非常感谢 这是我的密码 EditText search_filter = (EditText) stn_dialog .findViewById(R.id.et_search_ds);

我想在联系人应用程序中应用Android mobile的搜索过滤器。例如,有一个名为Aakash sharma的联系人。在搜索栏中,我按下Aakash中的starting-later,即aa,空格后按last-name,即sh。请查收附件,以便您能理解面糊。请帮帮我。事先非常感谢

这是我的密码

EditText search_filter = (EditText) stn_dialog
                    .findViewById(R.id.et_search_ds);
            ListView listView = (ListView) stn_dialog
                    .findViewById(R.id.lv_search_ds);
            stn_adapter = new ListAdapterStation(
                    RetailerSelectionActivity.this, R.layout.station_list,
                    station_list);

            filterTextWatcher = new TextWatcher() {
                public void afterTextChanged(Editable s) {
                    // Filter from my adapter
                    stn_adapter.getFilter().filter(s);
                    // Update my view
                    stn_adapter.notifyDataSetChanged();
                }

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

                public void onTextChanged(CharSequence s, int start,
                        int before, int count) {
                }
            };
            search_filter.addTextChangedListener(filterTextWatcher);
            listView.setAdapter(stn_adapter);

            listView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int pos, long id) {
                    stn_dialog.dismiss();
                    RetailerSelectionDTO retailerSelectionDTO = (RetailerSelectionDTO) station_list
                            .get(pos);
                    station_name = retailerSelectionDTO.getStation_name_c();
                    station_id = retailerSelectionDTO.getStation_id_c();
                    btn_station.setText(station_name);
                    btn_retailer.requestFocus();
                    new GetRetailerTask().execute();
                }
            });
EditText搜索\u过滤器=(EditText)stn\u对话框
.findviewbyd(R.id.et\u search\u ds);
ListView ListView=(ListView)stn_对话框
.findviewbyd(R.id.lv\u search\u ds);
stn_适配器=新列表适配器站(
RetailerSelectionActivity.this,R.layout.station\u列表,
车站(单位名单),;
filterTextWatcher=新的TextWatcher(){
公共无效后文本已更改(可编辑){
//从我的适配器中筛选
stn_适配器.getFilter().filter;
//更新我的视图
stn_适配器。notifyDataSetChanged();
}
更改前的公共无效(字符序列、整数开始、,
整数计数,整数后){
}
public void onTextChanged(字符序列,int start,
前整数,整数计数){
}
};
搜索\u filter.addTextChangedListener(filterTextWatcher);
setAdapter(stn_适配器);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
stn_dialog.discouse();
RetailerSelectionDTO RetailerSelectionDTO=(RetailerSelectionDTO)站点列表
.get(pos);
station_name=retailerSelectionDTO.getStation_name_c();
station_id=retailerSelectionDTO.getStation_id_c();
btn_station.setText(station_name);
btn_retailer.requestFocus();
新建GetRetailerTask().execute();
}
});
适配器是

private class ListAdapterStation extends ArrayAdapter {
    /**
     * List of Procedure
     * 
     */
    private ArrayList<RetailerSelectionDTO> items;
    /**
     * Application Context
     */
    private Context mContext;
    /**
     * List of Procedure
     */
    private ArrayList<RetailerSelectionDTO> originalItems = new ArrayList<RetailerSelectionDTO>();

    private ListAdapterItemFilter filter;

    public ListAdapterStation(Context context, int textViewResourceId,
            List<RetailerSelectionDTO> list) {
        super(context, textViewResourceId, list);
        this.items = (ArrayList<RetailerSelectionDTO>) list;
        this.mContext = context;
        cloneItems((ArrayList<RetailerSelectionDTO>) list);
    }

    /**
     * cloneItems @
     * 
     * @param list
     */
    protected void cloneItems(ArrayList<RetailerSelectionDTO> list) {
        for (Iterator<RetailerSelectionDTO> iterator = list.iterator(); iterator
                .hasNext();) {
            RetailerSelectionDTO p = iterator.next();
            originalItems.add(p);
        }
    }

    /**
     * Get Count
     */

    @Override
    public int getCount() {
        return items != null ? items.size() : 0;
    }

    /**
     * Get Item
     * 
     * @param item
     * @return TranUserProcedureDTO
     */
    @Override
    public RetailerSelectionDTO getItem(int item) {
        RetailerSelectionDTO p = null;
        p = (items != null ? items.get(item) : null);
        return p;

    }

    /**
     * Get View
     * 
     * @param position
     * @param convertView
     * @param parent
     * @return View
     */
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        try {
            if (convertView == null) {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = vi.inflate(R.layout.station_list, null); // --CloneChangeRequired(list_item)
            } else {
                view = convertView;
            }
            RetailerSelectionDTO retailerSelectionDTO = items.get(position);
            if (retailerSelectionDTO != null) {
                TextView textView = (TextView) view
                        .findViewById(R.id.tv_station);
                textView.setText(retailerSelectionDTO.getStation_name_c());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return view;
    }

    public Filter getFilter() {
        if (filter == null) {
            filter = new ListAdapterItemFilter();
        }
        return filter;
    }

    private class ListAdapterItemFilter extends Filter {

        protected FilterResults performFiltering(CharSequence prefix) {
            /**
             * Initiate our results object
             */
            FilterResults results = new FilterResults();

            /**
             * No prefix is sent to filter by so we're going to send back
             * the original array
             */

            if (prefix == null || prefix.length() == 0) {
                results.values = originalItems;
                results.count = originalItems.size();
            } else {
                /**
                 * Compare lower case strings
                 */
                String prefixString = prefix.toString().toLowerCase();
                final ArrayList<RetailerSelectionDTO> filteredItems = new ArrayList<RetailerSelectionDTO>();
                final ArrayList<RetailerSelectionDTO> localItems = new ArrayList<RetailerSelectionDTO>();
                localItems.addAll(originalItems);
                final int count = localItems.size();
                for (int i = 0; i < count; i++) {
                    final RetailerSelectionDTO item = localItems.get(i);
                    final String itemName = item.getStation_name_c()
                            .toLowerCase();
                    if (itemName.contains(prefixString)) {
                        filteredItems.add(item);
                    } else {
                    }
                }
                results.values = filteredItems;
                results.count = filteredItems.size();
            }
            return results;
        }

        @SuppressWarnings("unchecked")
        @Override
        /**
         * 
         */
        protected void publishResults(CharSequence prefix,
                FilterResults results) {
            /**
             * noinspection unchecked
             */
            final ArrayList<RetailerSelectionDTO> localItems = (ArrayList<RetailerSelectionDTO>) results.values;
            notifyDataSetChanged();
            clear();
            /**
             * Add the items back in
             */
            for (Iterator iterator = localItems.iterator(); iterator
                    .hasNext();) {
                RetailerSelectionDTO gi = (RetailerSelectionDTO) iterator
                        .next();
                add(gi);
            }
        }
    }
}
私有类ListAdapterStation扩展了ArrayAdapter{
/**
*程序清单
* 
*/
私有ArrayList项;
/**
*应用程序上下文
*/
私有上下文;
/**
*程序清单
*/
private ArrayList originalItems=new ArrayList();
私有ListAdapterItemFilter;
公共ListAdapterStation(上下文,int textViewResourceId,
(列表){
super(上下文、textViewResourceId、列表);
this.items=(ArrayList)列表;
this.mContext=上下文;
克隆种((ArrayList)列表);
}
/**
*克隆菌@
* 
*@param列表
*/
受保护的空克隆项(ArrayList列表){
for(迭代器迭代器=list.Iterator();迭代器
.hasNext();){
RetailerSelectionDTO p=iterator.next();
添加(p);
}
}
/**
*数一数
*/
@凌驾
public int getCount(){
返回项!=null?项。大小():0;
}
/**
*获取项目
* 
*@param项目
*@return-transuserproceduredto
*/
@凌驾
公共零售商选择getItem(整数项){
RetailerSelectionDTO p=null;
p=(items!=null?items.get(item):null);
返回p;
}
/**
*查看
* 
*@param位置
*@param-convertView
*@param父级
*@返回视图
*/
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=转换视图;
试一试{
if(convertView==null){
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
视图=vi.充气(R.布局.站列表,空);/--需要关闭更改(列表项)
}否则{
视图=转换视图;
}
RetailerSelectionDTO RetailerSelectionDTO=items.get(位置);
如果(retailerSelectionDTO!=null){
TextView TextView=(TextView)视图
.findviewbyd(R.id.tv_station);
textView.setText(retailerSelectionDTO.getStation_name_c());
}
}捕获(例外e){
e、 printStackTrace();
}
返回视图;
}
公共过滤器getFilter(){
if(filter==null){
过滤器=新的ListAdapterItemFilter();
}
回流过滤器;
}
私有类ListAdapterItemFilter扩展了筛选器{
受保护的筛选器结果执行筛选(字符序列前缀){
/**
*启动我们的结果对象
*/
FilterResults results=新的FilterResults();
/**
*没有将前缀发送给筛选依据,因此我们将发送回
*原始数组
*/
if(prefix==null | | prefix.length()==0){
结果。值=原始值;
results.count=originalItems.size();
}否则{
/**
*比较小写字符串
*/
字符串prefixString=prefix.toString().toLowerCase();
final ArrayList filteredItems=新的ArrayList();
final ArrayList localItems=新的ArrayList();
localItems.addAll(originalItems);
最终整数计数=localItems.size();
for(int i=0;i  for (int i = 0; i < count; i++) {
                final RetailerSelectionDTO item = localItems.get(i);
                final String itemName = item.getStation_name_c()
                        .toLowerCase();
                final String[] componentsItemName = itemName.split(" ");
                final String[] componentsPrefixString = prefixString.split(" ");

               // now here, you should match each word of prefix with each word of itemname 
            }