`

Notification消息提醒(msn模拟提醒)

阅读更多
按习惯贴上代码:
package cn.com;

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.ArrayAdapter;
import android.widget.Spinner;

public class OneActivity extends Activity
{
  private NotificationManager myNotiManager;
  private Spinner mySpinner;
  private ArrayAdapter<String> myAdapter;
  private static final String[] status =
  { "在线", "离开", "忙碌中", "马上回来", "离线" };

  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    myNotiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    mySpinner = (Spinner) findViewById(R.id.mySpinner);
    myAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, status);

    // 应用myspinner_dropdown自定义下拉菜单模式
    myAdapter.setDropDownViewResource(R.layout.myspinner_dropdown);

    mySpinner.setAdapter(myAdapter);

    mySpinner
        .setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
        {
          @Override
          public void onItemSelected(AdapterView<?> arg0, View arg1,
              int arg2, long arg3)
          {
            if (status[arg2].equals("在线"))
            {
              setNotiType(R.drawable.msn, "在线");
            } else if (status[arg2].equals("离开"))
            {
              setNotiType(R.drawable.away, "离开");
            } else if (status[arg2].equals("忙碌中"))
            {
              setNotiType(R.drawable.busy, "忙碌中");
            } else if (status[arg2].equals("马上回来"))
            {
              setNotiType(R.drawable.min, "马上回来");
            } else
            {
              setNotiType(R.drawable.offine, "离线");
            }
          }

          @Override
          public void onNothingSelected(AdapterView<?> arg0)
          {
          }
        });
  }

  private void setNotiType(int iconId, String text)// 发出Notification的method
  {
    Intent notifyIntent = new Intent(this, EX05_08_1.class);
// 点击Notification留言条运行的Activity
    notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    PendingIntent appIntent = PendingIntent.getActivity(EX05_08.this,
        0, notifyIntent, 0);
// 创建PendingIntent作为设置递延运行的Activity

    Notification myNoti = new Notification();
// 创建Notification,并设置相关参数

    myNoti.icon = iconId;
// 设置status bar显示的icon

    myNoti.tickerText = text;
// 设置status bar显示的文字信息

    myNoti.defaults = Notification.DEFAULT_SOUND;
// 设置notification发生时同时发出默认声音

    myNoti.setLatestEventInfo(EX05_08.this, "MSN登录状态", text, appIntent);
// 设置Notification留言条的参数

    myNotiManager.notify(0, myNoti);
// 送出Notification
  }
}



main.xml:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/layout1" android:layout_width="fill_parent"
	android:layout_height="fill_parent" android:background="@drawable/white">
	<TextView android:id="@+id/mText" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="@string/str_title"
		android:textSize="18sp" android:layout_x="30px" android:layout_y="30px"
		android:textColor="@drawable/black">
	</TextView>
	<Spinner android:id="@+id/mySpinner" android:layout_width="200px"
		android:layout_height="wrap_content" android:layout_x="30px"
		android:layout_y="60px">
	</Spinner>
</AbsoluteLayout>


还有一个样式设置:
myspinner_dropdown.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/text1" android:layout_width="fill_parent"
	android:layout_height="30sp" android:singleLine="true"
	android:textSize="20sp" style="?android:attr/spinnerDropDownItemStyle">
</TextView>  


可以将代码中的:
myAdapter.setDropDownViewResource(R.layout.myspinner_dropdown);

屏蔽了进行一下测试,看一下效果
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics