Toast:向用户提供比较快速的即时消息,当Toast被显示时,虽然其悬浮应用程序的最上方,但是Toast从不获得焦点。一般用于提示用户某项设置成功。
Toast对象的创建通过Toast类的静态方法makeText来实现,该方法有两个重载实现,主要的不同是一个接收字符串,一个接收字符串的资源标识符作为参数
Toast对象创建好后,调用其show方法即可将消息提示显示到屏幕上。
一般来讲,Toast只显示比较简短的文本信息,但Toast也可以显示图片。
Toast实例:
1.main.xml
<?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/btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click"
/> <!-- 声明一个Button控件 -->
</LinearLayout>
2.Activity
package wyf.jc; //声明包语句
import android.app.Activity; //引入相关类
import android.os.Bundle; //引入相关类
import android.view.Gravity;
import android.view.View; //引入相关类
import android.widget.Button; //引入相关类
import android.widget.ImageView; //引入相关类
import android.widget.LinearLayout; //引入相关类
import android.widget.Toast; //引入相关类
public class Sample_6_9 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) { //重写onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //设置当前屏幕
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() { //为按钮添加监听器
@Override
public void onClick(View v) {
ImageView iv = new ImageView(Sample_6_9.this); //创建ImageView
iv.setImageResource(R.drawable.header2); //设置ImageView的显示内容
LinearLayout ll = new LinearLayout(Sample_6_9.this); //创建一个线性布局
Toast toast = Toast.makeText(Sample_6_9.this, "这是一个带图片的Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
View toastView = toast.getView(); //获得Toast的View
ll.setOrientation(LinearLayout.HORIZONTAL); //设置线性布局的排列方式
ll.addView(iv); //将ImageView添加到线性布局
ll.addView(toastView); //将Toast的View添加到线性布局
toast.setView(ll);
toast.show(); //显示Toast
}
});
}
}
Notification是另外一种消息机制,Notification位于手机的状态栏,状态栏位于手机的最上层,通常显示电量,信号强度等信息。在Android的手机中用手指按下状态栏并往下拉可以打开状态栏查看系统的提示信息
Notification实例:
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Sample_6_10!</string>
<string name="app_name">Sample_6_10</string>
<string name="btn">点击添加Notification</string>
<string name="tv">我是通过Notification启动的!</string>
<string name="notification">点击查看</string>
</resources>
main.xml
<?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/btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btn"
/> <!-- 声明一个Button对象 -->
</LinearLayout>
notified.xml
<?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="wrap_content"> <!-- 声明线性布局 -->
<EditText
android:text="@string/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:cursorVisible="false"
android:layout_gravity="center_horizontal"
/> <!-- 声明EditText控件 -->
</LinearLayout>
Activity
package wyf.jc; //声明包语句
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; //引入相关类
import android.widget.Button; //引入相关类
public class Sample_6_10 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {//重写onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //设置当前屏幕
Button btn = (Button)findViewById(R.id.btn); //获取Button对象
btn.setOnClickListener(new View.OnClickListener() { //为按钮设置监听器
@Override
public void onClick(View v) { //重写onClick方法
Intent i = new Intent(Sample_6_10.this, NotifiedActivity.class);
PendingIntent pi = PendingIntent.getActivity(Sample_6_10.this, 0, i, 0);
Notification myNotification = new Notification(); //创建一个Notification对象
myNotification.icon=R.drawable.header; //Notification的图标
myNotification.tickerText=getResources().getString(R.string.notification); //
myNotification.defaults=Notification.DEFAULT_SOUND;
myNotification.setLatestEventInfo(Sample_6_10.this, "示例", "点击查看", pi);
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, myNotification); //发送Notification
}
});
}
}
package wyf.jc; //声明包语句
import android.app.Activity; //引入相关类
import android.os.Bundle; //引入相关类
public class NotifiedActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) { //重写onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.notified); //设置当前屏幕
}
}