程序如下:
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.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class A06Activity extends Activity {
private NotificationManager nm;
private String[] status;
private Spinner s;
private ArrayAdapter<String> aa;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
s=(Spinner)findViewById(R.id.s);
status=new String[]{"在线","离开"}; //以两个状态来模拟
aa=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,status);
aa.setDropDownViewResource(R.layout.my_spinner); //自定义下拉列表模式
s.setAdapter(aa); //将两个状态放置在Spinner中
s.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(status[arg2].equals("在线")){
setNotificationType(R.drawable.qq,"在线");
}
else{
setNotificationType(R.drawable.offine,"离开");
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
public void setNotificationType(int iconId,String s){
//创建新的Intent,作为单击Notification留言条时会运行的Activity
Intent i=new Intent(A06Activity.this,A06Activity_01.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//创建PendingIntent作为设置递延运行的Activity
PendingIntent pi=PendingIntent.getActivity(A06Activity.this, 0, i, 0);
//创建Notification,并添加相关参数
Notification n=new Notification();
n.icon=iconId; //设置留言图片
n.tickerText=s; //设置留言内容
n.defaults=Notification.DEFAULT_SOUND; //设置留言默认的声音
//设置Notification留言条的参数
n.setLatestEventInfo(A06Activity.this, "QQ登录状态", s, pi);
nm.notify(0, n); //以NotificationManager.notify()来发出Notification
}
}
//当用户单击Notification列表中的状态时,会启动这个程序,程序以一个Toast来告诉用户这是“模拟登录QQ的状态 的程序”
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
public class A06Activity_01 extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Toast.makeText(A06Activity_01.this, "这是模拟QQ登录状态的程序", Toast.LENGTH_LONG).show();
}
}
AndroidManifest.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.a06"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".A06Activity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".A06Activity_01"
android:label="@string/str"
></activity>
</application>
</manifest>
本文介绍了一个简单的Android应用程序,该程序使用Spinner控件切换两种在线状态(在线和离开),并在状态改变时显示相应的通知。通过创建自定义的通知类型,程序演示了如何使用NotificationManager发送带有不同图标和消息的通知。
1万+

被折叠的 条评论
为什么被折叠?



