Android Dev Guide Series 15: user notification (2) Creation of toast notification
Lazy bones (http://blog.csdn.com/iamlazybone)
Create a toast notification
A toast notification is a message popped up from the current window. It only occupies an area that meets the reality of text information, and the following activity is visible and operable. Information will automatically fade away, and user operations will not be accepted.
The example of a toast in the alarm program is displayed. Once the alarm program is enabled, a toast will be displayed.
Basic knowledge
First, use the maketext () method to instantiate a toast object. The method has three parameters: application context, prompt text, and display time. The method returns a correctly initialized toast object, and then calls the show () method to display it:
Context context = getapplicationcontext (); <br/> charsequence text = "Hello toast! "; <Br/> int duration = toast. length_short; <br/> Toast = toast. maketext (context, text, duration); <br/> toast. show ();
This example demonstrates in detail every step of toast display, which is very complete. You can also use your own layout to display it. It is not just a text, but will be mentioned later in the chapter.
You can also display toast as follows:
Toast. maketext (context, text, duration). Show ();
Toast display position
The standard toast is displayed in the left-right corner of the screen. You can also use the setgravity (INT, Int, INT) method to customize the location, for example:
Toast. setgravity (gravity. Top | gravity. Left, 0, 0 );
If you want to offset toast to the right, add the second parameter, and then add the second parameter.
Create custom toast Layout
Sometimes a simple text is not enough. You can customize a layout. Create a custom XML layout file or code and pass the Root View to the setview () method:
<Linearlayout xmlns: Android = "http://schemas.android.com/apk/res/android" <br/> Android: Id = "@ + ID/toast_layout_root" <br/> Android: orientation = "horizontal" <br/> Android: layout_width = "fill_parent" <br/> Android: layout_height = "fill_parent" <br/> Android: padding = "10dp" <br/> Android: Background = "# daaa" <br/> <imageview Android: id = "@ + ID/image" <br/> Android: layout_width = "wrap_content" <br/> Android: layout_height = "fill_parent" <br/> Android: layout_marginright = "10dp" <br/> <textview Android: Id = "@ + ID/text" <br/> Android: layout_width = "wrap_content" <br/> Android: layout_height = "fill_parent" <br/> Android: textcolor = "# fff" <br/> </linearlayout>
Note that the layout ID is toast_layout. You must use this ID to find the XML, for example:
Layoutinflater Inflater = getlayoutinflater (); <br/> View layout = Inflater. inflate (R. layout. toast_layout, <br/> (viewgroup) findviewbyid (R. id. toast_layout_root); <br/> imageview image = (imageview) layout. findviewbyid (R. id. image); <br/> image. setimageresource (R. drawable. android); <br/> textview text = (textview) layout. findviewbyid (R. id. text); <br/> text. settext ("Hello! This is a custom toast! "); <Br/> Toast = new toast (getapplicationcontext (); <br/> toast. setgravity (gravity. center_vertical, 0, 0); <br/> toast. setduration (toast. length_long); <br/> toast. setview (layout); <br/> toast. show ();
First, use the getlayoutflater () method to retrieve layoutinflater, and then use the inflate (INT, viewgroup) method to find the XML file. The first parameter is the resource ID of the layout file, the second parameter is the root view. You can use the inflated layout to find more view and layout objects. Now you can find the textview and imageview elements. Finally, use the toast (context) method to create a new toast and set its parameters. For example, location and time. Call setview (View) and pass it to inflated layout. Call the show () method to display the custom toast.
Note: Public constructor methods cannot be used unless you call the setview (View) method. If you do not use a custom layout, you can only use the maketext (context, Int, INT) method.