`

自定义Diaolg与系统消息通知

阅读更多

        自定义Dialog

        一.使用DialogActivity将一个activity变成Dailog样式显示。

           Dialog有很多类型(单选,多选,进度条,简单显示文本,自定义等)

 public class DialogActivity extends Activity {       
       private final static int  SIMPLE_DIALOG= 1;
	private final static int  CUSTOM_VIEW_DIALOG=2;	
	private final static int  PROGRESS_DIALOG=3;
	Dialog d;		
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		this.setContentView(R.layout.dialog);
		
		findViewById(R.id.button1).setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View arg0) {				
				DialogActivity.this.showDialog(SIMPLE_DIALOG, null);
			}
		});
				
		findViewById(R.id.button2).setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View arg0) {								DialogActivity.this.showDialog(CUSTOM_VIEW_DIALOG, null);
			}
		});
		
		findViewById(R.id.button3).setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View arg0) {				
				DialogActivity.this.showDialog(PROGRESS_DIALOG, null);
			}
		});		
	
	@Override
	protected Dialog onCreateDialog(int id, Bundle args) {
		//简单的Dialog ,显示标题,内容,图标
		if(SIMPLE_DIALOG==id)
			return new AlertDialog.Builder(this)
					.setTitle("tille")
					.setIcon(android.R.drawable.ic_dialog_alert)
					.setMessage("thisis message")			
					.create();
                   //自定义布局的Dialog
		else if(CUSTOM_VIEW_DIALOG == id){
			LayoutInflater inflater=LayoutInflater.from(this);		
			return new AlertDialog.Builder(this)
					.setView(inflater.inflate( R.layout.dialog, null) )
					.setTitle("tille")
					.setIcon(android.R.drawable.ic_dialog_alert)
					.setMessage("thisis message")
					.setPositiveButton("OK", null)
					.setNegativeButton("Cancle", null)
					.create();
		}
                   //进度条类型Dialog
               else if(PROGRESS_DIALOG==id){
			ProgressDialog dialog=new ProgressDialog(this);
			dialog.setTitle("title");
			dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); //进度条类型(长条型,圆圈型等)
			dialog.setMax(100);  
			dialog.incrementProgressBy(20);  //自定了当前进度(一般要通过具体业务实现)
			return dialog;
		}
		return super.onCreateDialog(id);
		
	}
	
}

        二.创建一个Dialog再进行调用

      在values文件夹下的styles文件中配置

 <style name="MyDialog" parent="@android:Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item> //设置Dialog无标题
        <item name="android:windowBackground">@color/blue</item>   //设置背景
        <item name="android:windowIsFloating">true</item>  //设置Dialog悬浮
        <item name="android:windowContentOverlay">@null</item>
    </style>

      创建自定义Dialog类

public class FriendsMsgDialog extends Dialog {
    Context context;
    int position;
    MyApplication application;
    ImageView icon;
    TextView nickname;
    TextView address;
    TextView sex;
    TextView phone;
    JSONArray array;
    LayoutInflater inflater;
       //重载构造函数
	public FriendsMsgDialog(Context context, int theme,int position,JSONArray array) {
		super(context, theme);
		this.context=context;
		this.position=position;
		this.array=array;
		application=(MyApplication) context.getApplicationContext();
		inflater=LayoutInflater.from(context);
	}

      //要实现onCreate(Bundle savedInstanceState) 方法
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		View view=inflater.inflate(R.layout.friends_msg,null);
		
		JSONObject obj;
		try {
		obj = (JSONObject) array.get(position);
               //获取自定义Dialog界面上的各个组件		
		icon=(ImageView) view.findViewById(R.id.img_dtlfriends_icon);
		nickname=(TextView) view.findViewById(R.id.tv_dtlfriends_nickname);
		address=(TextView) view.findViewById(R.id.tv_dtlfriends_address);
		sex=(TextView) view.findViewById(R.id.tv_dtlfriends_sex);
		phone=(TextView) view.findViewById(R.id.tv_dtlfriends_phone);
		//给各组件赋值(通过具体业务)
	    nickname.setText(obj.getString("nick_name"));
	    address.setText(obj.getString("address"));
	    sex.setText(obj.getString("sex"));
	    phone.setText(obj.getString("phone"));
	    GetIcon.getview(obj.getString("icon"), icon);
		} catch (JSONException e) {
			e.printStackTrace();
		}
		setContentView(view);
	}
}

       调用Diaog

public boolean onItemLongClick(AdapterView<?> parent, View view,
	        int position, long id) {  //长按listView的某一项显示Dialog
		if(dialog==null){
		   dialog=new FriendsMsgDialog(context, R.style.MyDialog,position,array);
		   dialog.show();
		}else
		   dialog.show();
		return true;

 系统消息通知

    

NotificationManager nm;
findViewById(R.id.button6).setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View arg0) {
				installNotificaiton();
			}
		});

	private void installNotificaiton()
	{
		//获取系统 通知服务
		nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
		
		//创建一个通知 
		Notification nf=new Notification();
		
		//设置状态text
		nf.tickerText="new messages incoming...";
		//设置时间
		nf.when=System.currentTimeMillis();
		//设置icon
		nf.icon=R.drawable.ic_launcher;
		
		//设置特性
		nf.flags=nf.FLAG_AUTO_CANCEL ;
		
                //点击消息跳转到MainActivity
		PendingIntent pi=PendingIntent.getActivity(this, 0,  new Intent(this, MainActivity.class ),PendingIntent.FLAG_CANCEL_CURRENT);
               
		nf.setLatestEventInfo(this, "title", "somebody send you msg", pi);
		nm.notify(2014, nf);		
	}

 

 

分享到:
评论

相关推荐

    轻量万能自定义信息管理系统软件 v7.1.028

    轻量万能自定义信息管理系统软件是为了解决所有企业团队或个体商户所面临的业务管理难,市场上找不到一款适合自己需要的,同时操作起来与Execl表格又相差不大的信息管理软件。具资料查询管理、小微计算、统计汇总,...

    自定义消息 MFC 对话框

    在MFC中,自定义消息通常用作类之间的通信方式,以扩展系统内置的消息处理能力。自定义消息不同于标准的Windows消息,它们不在消息映射表中定义,而是通过`RegisterWindowMessage`函数动态注册生成。 二、创建...

    MFC自定义消息示例

    自定义消息是Windows消息机制的一部分,允许开发者扩展系统消息,以满足特定应用需求。本教程将详细介绍如何在MFC环境下创建和处理自定义消息。 一、自定义消息的概念 自定义消息是Windows操作系统中除标准消息(如...

    消息黑客(自定义并发送Windows消息)

    首先,Windows消息是操作系统用来传递信息的结构体,通常包含一个消息标识符(如WM_PAINT或WM_KEYDOWN),一个与消息相关的窗口句柄,以及可能的额外参数。这些消息通过消息队列进行传递,由Windows的消息循环负责...

    Notification消息通知 自定义消息通知内容布局

    Notification消息通知可以分为两种类型:系统通知和应用程序通知。系统通知是由系统自己生成的通知,例如低电量警告、网络连接错误等,而应用程序通知是由应用程序自己生成的通知,例如新消息提醒、更新提醒等。 ...

    ios自定义弹出本地通知

    在iOS平台上,本地通知是一种非常重要的用户交互方式,它能够在应用程序不在前台运行或者用户未直接与应用交互时向用户发送消息。"ios自定义弹出本地通知"这一主题主要涉及如何在iOS应用中创建和定制本地通知,以...

    Netty4编写服务器客户端,自定义编解码,发送自定义消息

    在这个项目中,我们将深入理解如何利用 Netty 4 来编写服务器和客户端,实现自定义的消息编解码,并进行通信。 首先,我们要创建一个自定义的消息类。这个消息类通常会包含必要的字段,比如消息头、消息体等,以...

    ros+rviz+自定义消息+自定义插件

    测试通常会验证插件是否能正确加载、显示数据以及与ROS系统其他部分的交互。 总结一下,这个项目涉及了ROS的自定义消息创建,以及在RViz中开发Panel和Display类型的自定义插件。通过这些技术,我们可以构建高度定制...

    融云自定义消息demo,红包为例

    在接收端,融云SDK会自动将接收到的自定义消息回调到你的消息处理逻辑中,你需要在这里解析消息内容并进行相应的业务处理,比如通知用户有新的红包待领。 4. **处理红包逻辑**:红包的业务逻辑比较复杂,通常涉及抢...

    实现自定义的弹出通知视图(Notification)-定制颜色、图标等

    例如,`setStyle(NotificationCompat.BigPictureStyle style)`可以创建一个显示大图片的通知,而`setStyle(NotificationCompat.InboxStyle style)`则可以创建一个显示多行文本消息的通知。 除了视觉元素,通知的...

    NotificationDemoWPF自定义通知窗体样式

    【标题】"NotificationDemoWPF自定义通知窗体样式"主要涉及的是在Windows Presentation Foundation (WPF) 平台上创建自定义的通知窗口。WPF是.NET Framework的一部分,它提供了丰富的用户界面设计工具和功能,允许...

    C# Wninform自定义消息窗

    本话题将深入探讨如何在C# Winform应用中实现自定义消息窗,以及如何在系统默认和自定义之间进行选择。 首先,系统默认的消息提示框,如`MessageBox.Show()`,是.NET Framework提供的一个便捷方法,用于快速显示...

    Android仿QQ消息通知栏新消息实时更新效果

    在Android应用开发中,实现类似QQ的消息通知栏新消息实时更新效果是一项常见的需求。这个功能不仅能够让用户在不打开应用的情况下获取到新消息,还能提供便捷的交互方式,如一键清除所有新消息。下面我们将详细探讨...

    MFC 自定义消息和自定义类

    自定义消息是Windows消息系统的一部分,允许程序员定义自己的消息类型,而自定义类则提供了创建具有独特行为的对象的能力。下面我们将详细探讨这两个概念及其在实际开发中的应用。 首先,我们来看自定义消息。在MFC...

    Android快速集成极光推送,内含自定义通知,通知推送对象到某一个人,或者某一群人

    本文将详细介绍如何快速集成极光推送到Android项目中,并实现自定义通知,以及如何将通知推送给特定的个人或群体。 一、集成极光推送 1. 注册极光推送账号:首先,你需要在极光推送官网(http://www.jpush.cn/)...

    环信发送消息----名片(自定义视图消息)

    综上所述,集成环信发送好友名片及自定义视图消息涉及到环信SDK的使用、自定义UI设计、消息构建与发送、消息监听以及用户交互等多个方面。通过熟练掌握这些知识点,开发者可以构建出具有高效沟通和分享功能的应用,...

    WinCC 知识库-常见问题下载-西门子WinCC中生成用户自定义操作员输入消息.zip

    在西门子WinCC自动化系统中,用户自定义操作员输入消息是实现人机交互功能的重要组成部分。这些消息能够提供给操作员实时的系统状态反馈,帮助他们更好地理解和响应系统的运行情况。本知识库主要围绕如何在WinCC中...

    Winform自定义消息框,好看的消息提示Alert源码

    Winform自定义消息框,好看的消息提示Alert源码,国外大神,很基础的实现,可以在此基础上进行优化和进一步调整。Winform控件、Winform优美提示框、消息框、Alert信息弹窗、Notification

    vc自定义消息实例

    自定义消息是在Windows消息系统中,程序员为应用程序定义的非标准消息类型。它们不包含在Windows SDK的标准消息列表中,而是由应用程序自己定义并分配消息ID。这使得开发者能够添加超出Windows默认消息机制的额外...

Global site tag (gtag.js) - Google Analytics