title: filtration alphabetically with ListAdapter using listview in android app
body: <p>I am working on an android app. The app binds data using json and ListAdpter in Listview. Now I want to filter that data as per user write letter in searchbox. I tried to do it but due to multiple data is bound in the listview and I dont know how to filter it. Below is my code:</p>
  
  <pre><code>private void getdatalatlog(double latitude, double longitude) {
      // TODO Auto-generated method stub
      //value=5;
      String url = "http://bizzcoder.co.in/php/comments.php?latitude='"+latitude+"'&amp;longitude='"+longitude+"'&amp;value='"+value+"'";
      aq.progress(R.id.progressBar1).ajax(url, JSONObject.class, this,"jsonCallback");
  
  }
  
  
  public void jsonCallback(String url, JSONObject json, AjaxStatus status) {  
  
  
      if (json != null) { 
  
      List&lt;String&gt; city = new ArrayList&lt;String&gt;();
      mCommentList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
  
          Gson gson = new GsonBuilder().create();
          try {
  
              JSONArray jsonResponse = json.getJSONArray("posts");
              city = gson.fromJson(jsonResponse.toString(),List.class);
              for (int i = 0; i &lt; jsonResponse.length(); i++) {
                  JSONObject c = jsonResponse.getJSONObject(i);       
  
                  String title = c.getString(TAG_TITLE);
                  String content = c.getString(TAG_MESSAGE);
                  String username = c.getString(TAG_USERNAME);
                  String lat = c.getString(TAG_LATITUDE);
                  String log = c.getString(TAG_LONGITUDE);
                  String cont = c.getString(TAG_CONTACT);
  
                  // creating new HashMap
                  HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
  
                  map.put(TAG_TITLE, title);
                  map.put(TAG_MESSAGE, content);
                  map.put(TAG_USERNAME, username);
                  map.put(TAG_LATITUDE, lat);
                  map.put(TAG_LONGITUDE, log);
                  map.put(TAG_CONTACT, cont);
                      // adding HashList to ArrayList
              mCommentList.add(map);
  
  
              }
          } 
          catch (JSONException e) {
  
              Toast.makeText(aq.getContext(), "Error in parsing JSON", Toast.LENGTH_LONG).show();
          }
          catch (Exception e) {
              Toast.makeText(aq.getContext(), "Something went wrong", Toast.LENGTH_LONG).show();
          }
  
          ListAdapter adapter = new SimpleAdapter(this, mCommentList,
                  R.layout.single_post, new String[] { TAG_TITLE,TAG_USERNAME ,TAG_CONTACT ,TAG_MESSAGE ,TAG_LATITUDE , TAG_LONGITUDE 
                          }, new int[] { R.id.shop_name,R.id.address,R.id.contact,R.id.distance,R.id.latitude,R.id.longitude });
  
  
          setListAdapter(adapter);
  
          /**
           * Enabling Search Filter
           * */
          inputSearch.addTextChangedListener(new TextWatcher() {
  
              @Override
              public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                  // When user changed the Text
                  Shopdetail.this.adapter.getFilter().filter(cs);   
              }
  
              @Override
              public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                      int arg3) {
                  // TODO Auto-generated method stub
  
              }
  
              @Override
              public void afterTextChanged(Editable arg0) {
                  // TODO Auto-generated method stub                          
              }
          });
  
          ListView lv = getListView();    
          lv.setOnItemClickListener(new OnItemClickListener() {
  
  
              @Override
              public void onItemClick(AdapterView&lt;?&gt; parent, View view,
                      int position, long id) {
  
                  Intent intent = new Intent();
                   Bundle b = new Bundle();
  
  
                   String name= ((TextView) view.findViewById(R.id.shop_name)).getText().toString()+" , "+((TextView) view.findViewById(R.id.contact)).getText().toString();
  
                   String lati= ((TextView) view.findViewById(R.id.latitude)).getText().toString();
  
                   String longi= ((TextView) view.findViewById(R.id.longitude)).getText().toString();
  
                   b.putString("shop",name);
                   b.putString("lati",lati);
                   b.putString("long",longi);
                  intent.setClass(Shopdetail.this, Mapview.class);
                  intent.putExtras(b);
                  startActivity(intent);
              }
          });
  } 
       }
  </code></pre>
  
  <p>There are multiple details bound in listview like shop name, contact number,address etc. I want to filter it only by the shop name. but I red line below getfilter() method.</p>