Monday, 3 December 2018

AutoCompleteTextView with volley with text filter

I'm trying to filter my data from sql table. This in my query.

SELECT TOP 10 ItemCode, ItemName 
    FROM [mytable]
WHERE ItemCode like '".$q."%' order by CreatedDate desc

here is my volley

private void getItem(String s){
    JsonArrayRequest postRequest = new JsonArrayRequest (Request.Method.GET, "http://192.168.3.9/api/welcome/getItem/"+s,null,
            new  Response.Listener<JSONArray>()
            {
                @Override
                public void onResponse(JSONArray  response) {
                    try {
                        if (itemList == null) itemList = new ArrayList<>();
                        itemList.clear();
                        for(int i = 0; i < response.length(); i++){
                            Item_model m_item = new Item_model();
                            List<String> list = new ArrayList<String>();
                            m_item.setItemCode(response.getJSONObject(i).getString("ItemCode"));
                            itemList.add(m_item);
                        }
                         itemcode.setAdapter(adapter);
                        adapter.notifyDataSetChanged();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("ErrorResponse", error.toString());
                }
            }
    );
    postRequest.setRetryPolicy(new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    postRequest.setTag("GetItem");
    queue.add(postRequest);
}

i call the getItem inside onCreateView

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) { 
        getItem("");
}

for now my code is working fine, because i want to filtering so i using TextWatcher, Here is what i do.

itemcode.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

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

            }
            @Override
            public void afterTextChanged(Editable s) {
                search = s.toString();
                getItem("");
                adapter.getFilter().filter(search);
            }
        });

when i implementing my script above, my autocompletetext view not showing any data, how can i fix it ?

My json

[{"ItemCode":"IT001","ItemName":"Blue Hat"},{"ItemCode":"IT002","ItemName":"Black Hat"}]



from AutoCompleteTextView with volley with text filter

No comments:

Post a Comment