CS453 | mobile programming
  • outline
  • projects
  • syllabus
  • links

Temporary Text using Toast and Notifications ("status" bar)

 

Using Toast to create Temporary Text

 

  • android.widget.Toast
  • used to send temporary messages that appear on the GUI for a few seconds and then disappears.

Example:

Toast.makeText(this, "the string", option).show(); //makeText creates the test and show makes it visible

See example in Try it Out: Linking Activities Using Intents p.g 53-58 (Books/Android/Source Code/UsingIntents)

Notifications

  • message in "status" bar at top of the Application window.
  • Example Try it Out: Displaying Notifications p.g 98-100 (Books/Android/Source Code/Notifications)

After Application Launch displaying NotificationsActivity GUI

notifications 1

After button hit, a Notification is created and displayed (nm.notify) and an Intent is generated and used to start the NotivicationView Activity

notification 2

 

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="net.learn2develop.Notifications"
       android:versionCode="1"
       android:versionName="1.0" >
 <uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.VIBRATE"/>
 <application
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name" >
    <activity
         android:label="@string/app_name"
         android:name=".NotificationsActivity" >
         <intent-filter >
                  <action android:name="android.intent.action.MAIN" />
                   <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
   </activity> 
   <activity android:name=".NotificationView" 
         android:label="Details of notification">
         <intent-filter>
                  <action android:name="android.intent.action.MAIN" /> 
                  <category android:name="android.intent.category.DEFAULT" /> 
         </intent-filter>
   </activity> 
</application>
</manifest>

main.xml --GUI for NotificationsActivity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >
<Button
         android:id="@+id/btn_displaynotif"
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content"
         android:text="Display Notification" 
         android:onClick="onClick"/>
</LinearLayout>

NotificationsActivity

package net.learn2develop.Notifications;
import android.app.Activity;
         import android.app.Notification;
         import android.app.NotificationManager;
         import android.app.PendingIntent;
         import android.content.Intent;
         import android.os.Bundle;
         import android.view.View;
public class NotificationsActivity extends Activity {
         int notificationID = 1;
   
         /** Called when the activity is first created. */
         @Override
         public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
         }
   
         public void onClick(View view) {   //when click button call displayNotification
                displayNotification();
         }
         protected void displayNotification()
         {
               //---PendingIntent to launch activity if the user selects
               // this notification---
               Intent i = new Intent(this, NotificationView.class);
               i.putExtra("notificationID", notificationID);
               PendingIntent pendingIntent =  PendingIntent.getActivity(this, 0, i, 0);

               //grab NotificationManager from the system
               NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 

              //create instance of Notification with information with logo in res/drawable-*/ic_launcher.png (R.drawable.ic_launcher)
               Notification notif = new Notification( R.drawable.ic_launcher, "Reminder: Meeting starts in 5 minutes",
                                                      System.currentTimeMillis());
              //Setup Notification details that will be displayed whenever the user clicks on the
// notification in the status bar and drags down
CharSequence from = "System Alarm"; CharSequence message = "Meeting with customer at 3pm..."; notif.setLatestEventInfo(this, from, message, pendingIntent);
              //---100ms delay, vibrate for 250ms, pause for 100 ms and
              // then vibrate for 500ms---
              notif.vibrate = new long[] { 100, 250, 100, 500};
              nm.notify(notificationID, notif);  //this displays the notification

             //NOTE: when user clicks on the Notification in the GUI, it will bring up the pending
             // NotificationView Activity that was set at start of this method....that activity will
             // cancel the notification.
         }
}
 

notification.xml - GUI for NotificationView

<?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" >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Here are the details for the notification..." />
</LinearLayout>

NotificationView

package net.learn2develop.Notifications;
import android.app.Activity;
         import android.app.NotificationManager;
         import android.os.Bundle;
public class NotificationView extends Activity
   {
         @Override
         public void onCreate(Bundle savedInstanceState) 
         {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.notification);
   
             //---look up the notification manager service---
             NotificationManager nm = (NotificationManager) 
             getSystemService(NOTIFICATION_SERVICE);
             //---cancel the notification that we started--- 
             nm.cancel(getIntent().getExtras().getInt("notificationID"));
         }
  }
 

 

 

cs453:mobile programming

  • home
  • outline
  • projects
  • syllabus
  • links