Toast instance. The makeText() method also needs the Activity (or other Context) plus a duration. The duration is expressed in the form of the LENGTH_SHORT or LENGTH_LONG constants to indicate, on a relative basis, how long the message should remain visible.

If you would prefer your Toast be made out of some other View, rather than be a boring old piece of text, simply create a new Toast instance via the constructor (which takes a Context), then call setView() to supply it with the view to use and setDuration() to set the duration.

Once your Toast is configured, call its show() method, and the message will be displayed.

Alert! Alert!

If you would prefer something in the more classic dialog-box style, what you want is an AlertDialog. As with any other modal dialog box, an AlertDialog pops up, grabs the focus, and stays there until closed by the user. You might use this for a critical error, a validation message that cannot be effectively displayed in the base activity UI, or something else where you are sure that the user needs to see the message and needs to see it now.

The simplest way to construct an AlertDialog is to use the Builder class. Following in true builder style, Builder offers a series of methods to configure an AlertDialog, each method returning the Builder for easy chaining. At the end, you call show() on the builder to display the dialog box.

Commonly used configuration methods on Builder include the following:

• setMessage() if you want the “body” of the dialog to be a simple textual message, from either a supplied String or a supplied string resource ID

• setTitle() and setIcon() to configure the text and/or icon to appear in the title bar of the dialog box

• setPositiveButton(), setNeutralButton(), and setNegativeButton () to indicate which button(s) should appear across the bottom of the dialog, where they should be positioned (left, center, or right, respectively), what their captions should be, and what logic should be invoked when the button is clicked (besides dismissing the dialog)

If you need to configure the AlertDialog beyond what the builder allows, instead of calling show(), call create() to get the partially built AlertDialog instance, configure it the rest of the way, then call one of the flavors of show() on the AlertDialog itself.

Once show() is called, the dialog box will appear and await user input.

Checking Them Out

To see how these work in practice, take a peek at Messages/Message (available from the Source Code section of the Apress Web site), containing the following layout:

<?xml version='1.0' encoding='utf-8'?>

<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android'

 android:orientation='vertical'

 android:layout_width='fill_parent'

 android:layout_height='fill_parent' >

 <Button

  android:id='@+id/alert'

  android:text='Raise an alert'

  android:layout_width='fill_parent'

  android:layout_height='wrap_content'/>

 <Button

  android:id='@+id/toast'

  android:text='Make a toast'

  android:layout_width='fill_parent'

  android:layout_height='wrap_content'/>

</LinearLayout>

and the following Java code:

public class MessageDemo extends Activity implements View.OnClickListener {

 Button alert;

 Button toast;

 @Override

 public void onCreate(Bundle icicle) {

  super.onCreate(icicle);

  setContentView(R.layout.main);

  alert = (Button)findViewById(R.id.alert);

  alert.setOnClickListener(this);

  toast = (Button)findViewById(R.id.toast);

  toast.setOnClickListener(this);

 }

 public void onClick(View view) {

  if (view==alert) {

   new AlertDialog.Builder(this)

    .setTitle('MessageDemo')

    .setMessage('eek!')

    .setNeutralButton('Close', new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dlg, int sumthin) {

     // do nothing – it will close on its own

    }

   })

   .show();

  } else {

   Toast

   .makeText(this, '<clink, clink>', Toast.LENGTH_SHORT)

   .show();

Вы читаете Beginning Android
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату