Android Soft Key Board/Soft Input Window Customization

This code log entry is regarding adding Action key to Xamarin.Android soft keyboard. When I tried to do this in one of my project,faced a little problem,So updating here to avoid in future ;( and may helpful to somebody those who are looking for the same.
To Add "search" to softkeyboard. 
1
2
3
4
5
6
7
8
9
<EditText    
  android:id="@+id/myEdtTextView"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:inputType="text"
  android:imeActionId="@+id/ImeSearch"
  android:imeOptions="actionSearch"
  android:imeActionLabel="Search"
  android:textSize="22dp" />

Here we need to mention inputType [where i did mistake].  Mention the text in "imeActionLabel" attribute.



If you want Show only the search symbol instead of text, just remove the
 'android:imeActionLabel="Search"'
     
Lenova tab 7-kitkat
YU-Lolipop


or Add imeActionOption programmatically,

txtSearch.SetImeActionLabel ( "Search" , ImeAction.Search );

You can Detect the seach action key pressed using below line of code,


1
2
3
4
5
6
7
8
9
10
txtSearch.KeyPress+= delegate(object sender , View.KeyEventArgs e )
            {
                InputMethodManager inputManager = (InputMethodManager)this.GetSystemService (Context.InputMethodService);
                //Hide softinputwindow   
                inputManager.HideSoftInputFromWindow (this.CurrentFocus.WindowToken, HideSoftInputFlags.NotAlways);
                if ( e.KeyCode == Keycode.Enter && e.Event.Action == KeyEventActions.Down )
                {
                    Console.WriteLine("Search pressed");
                }
            }; 

In the same way we can set "Done" action also
1
2
3
4
5
6
7
8
<EditText
   android:id="@+id/myEdtTextView"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:inputType="text"
   android:imeActionId="@+id/imeSearch"
   android:imeOptions="actionDone"
   android:textSize="22dp" />



There are few other available imeAction and its general use  are.

Go  : when entering the url for navigation to target


Next : Next field in the screen

previous : Previous field in the form


Send : In composed message action etc

None : When no action needed


Happiee coding :) Keep visiting.

No comments:

Post a Comment