Redeem Now
Read More
Read now

Change the text colors and icons of searchview in action bar.


In this blog, we will learn on how to change the text colors and icons of the searchview in action bar.

We all inflate some menu in all our activities to make our app user interactive.
While working in the same manner, I used the search item but then after sometime i needed to change the same to an expanded search view along with all the other action icons present.

One approach was to make the toolbar and inflate in every activity, but that would be very cumbersome.
So i decided to look up and experiment with the search view that i created in”onCreateOptionsMenu” method.

And finally i got success.

All you need to do is to override the default resources associated with the search view which in turn are picked as per the styles.xml file or default theme applied in your application.

Yes , of course you can create the style attribute for search view and apply it to all the search views you want to.

But i did it with java.

  1. Expand the search view by setting iconified and iconifiedByDefault flags to false.
  2. Find views inside the search view and set the colors as per your wish.
  3. Find views of the icons you wish to change and replace them with your icons.

And it’s done.
Lets have a look at the code :

That’s all, check it out.

Keep coding, Keep sharing : )



. . .

Comments (2)

Add Your Comment

  • Sagar Balyan
    Line #22 throws Null Pointer Exception. Doesn’t work at all !!
    • anchit
      Hello Sagar,
      Thanks for your comment.

      Can you please let me know if you have enabled the voice search for your search view before commenting that this code is giving null pointer exceptiion ??

      Also, if you can show me the code you are using then perhaps I would be able to help you.
      Waiting for your reply.

  • css.php
    Hire Us!
    Brief us about your requirements and we'll get back to you.
    Woo! Hooy!
    We have just recieved your project brief and our expert will contact you shortly.
    Send Again