title: Search Functionality- How to display the Filtered data into listview
body: <p>I had parsed the data from website and made it to display in the listview this is my 2nd activity, in 1st activity there is a edittext and search button, after giving the keyword in editext based on that keyword able to get the related search results in toast, but i want it to be displayed in listview, this is the code part.</p>
  
  <pre><code>public class Home extends ListActivity {
      ArrayList&lt;HashMap&lt;String, String&gt;&gt; songsList;
      ListView list;
      LazyAdapter adapter;
      JSONArray posts;
  
  
      //ArrayList thats going to hold the search results
      ArrayList&lt;HashMap&lt;String, String&gt;&gt; searchResults;
      LayoutInflater inflater;
      // All static variables
      static final String URL = "http://www.example.com/ads/?json=get_recent_posts";
  
  
      static final String KEY_POSTS = "posts";
      static final String KEY_ID = "id";
      static final String KEY_TITLE = "title";
      static final String KEY_DATE = "date";
      static final String KEY_CONTENT = "content";
      static final String KEY_AUTHOR = "author";
      static final String KEY_NAME = "name";
      static final String KEY_ATTACHMENTS = "attachments";
      static final String KEY_SLUG = "slug";
      static final String KEY_THUMB_URL = "thumbnail";
      static final String KEY_IMAGES = "images";
      static final String KEY_URL = "url";
  
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          final EditText searchBox = (EditText) findViewById(R.id.search);
          final ListView list = (ListView) findViewById(android.R.id.list);
  
          //get the LayoutInflater for inflating the customomView
          //this will be used in the custom adapter
          inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  
  
          final ArrayList&lt;HashMap&lt;String, String&gt;&gt; songsList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
  
  
          // Creating JSON Parser instance
          final JSONParser jParser = new JSONParser();
  
          // getting JSON string from URL
          JSONObject json = jParser.getJSONFromUrl(URL);
          try {
              posts = json.getJSONArray(KEY_POSTS);
  
              // looping through all song nodes &lt;song&gt;
              for (int i = 0; i &lt; posts.length(); i++) {
                  JSONObject c = posts.getJSONObject(i);
                  // Storing each json item in variable
                  String id = c.getString(KEY_ID);
                  String title = c.getString(KEY_TITLE);
                  String date = c.getString(KEY_DATE);
                  String content = c.getString(KEY_CONTENT);
                  // to remove all &lt;P&gt; &lt;/p&gt; and &lt;br /&gt; and replace with ""
                  content = content.replace("&lt;br /&gt;", "");
                  content = content.replace("&lt;p&gt;", "");
                  content = content.replace("&lt;/p&gt;", "");
  
                  //authornumber is agin  JSON Object
                  JSONObject author = c.getJSONObject(KEY_AUTHOR);
                  String name = author.getString(KEY_NAME);
  
                  String url = null;
                  String slug = null;
                  try {
                      JSONArray atta = c.getJSONArray("attachments");
                      for (int j = 0; j &lt; atta.length(); j++) {
                          JSONObject d = atta.getJSONObject(j);
  
                          slug = d.getString(KEY_SLUG);
  
                          JSONObject images = d.getJSONObject(KEY_IMAGES);
  
                          JSONObject thumbnail = images.getJSONObject(KEY_THUMB_URL);
                          url = thumbnail.getString(KEY_URL);
  
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
  
                  }
  
  
                  // creating new HashMap
                  HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
  
                  // adding each child node to HashMap key =&gt; value
                  map.put(KEY_ID, id);
                  map.put(KEY_TITLE, title);
                  map.put(KEY_DATE, date);
                  map.put(KEY_NAME, name);
                  map.put(KEY_CONTENT, content);
                  map.put(KEY_SLUG, slug);
                  map.put(KEY_URL, url);
  
  
                  // adding HashList to ArrayList
                  songsList.add(map);
              }
          } catch (JSONException e) {
              e.printStackTrace();
  
          }
  
  
          //searchResults=OriginalValues initially
          searchResults = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(songsList);
  
  
          // Getting adapter by passing json data ArrayList
          adapter = new LazyAdapter(this, songsList);
          list.setAdapter(adapter);
  
  
          searchBox.addTextChangedListener(new TextWatcher() {
  
              public void onTextChanged(CharSequence s, int start, int before, int count) {
                  //get the text in the EditText
                  String searchString = searchBox.getText().toString();
                  int textLength = searchString.length();
  
                  //clear the initial data set
                  searchResults.clear();
  
                  for (int i = 0; i &lt; songsList.size(); i++) {
                      String playerName = songsList.get(i).get("title").toString();
  
                      if (textLength &lt;= playerName.length()) {
  
                          //compare the String in EditText with Names in the ArrayList
                          if (searchString.equalsIgnoreCase(playerName.substring(0, textLength)))
                              Toast.makeText(getApplicationContext(), playerName, 1).show();
                          searchResults.add(songsList.get(i));
                      }
                  }
  
                  adapter.notifyDataSetChanged();
              }
  
              public void beforeTextChanged(CharSequence s, int start, int count,
                                            int after) {
  
  
              }
  
              public void afterTextChanged(Editable s) {
  
  
              }
          });
      }
  }
  </code></pre>