当前位置 : 主页 > 编程语言 > java >

Notification以及各种Dialog

来源:互联网 收集:自由互联 发布时间:2021-06-28
DialogActivity.java package com.example.notificationdemo;import android.app.ProgressDialog;import android.content.DialogInterface;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bu
DialogActivity.java
package com.example.notificationdemo;

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import android.widget.Toolbar;

public class DialogActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
    }
    public void click1(View view){
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("警告");
        builder.setMessage("点量以不足10%,是否进入节能模式");
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, "即将进入节能模式", Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, "请注意及时充电", Toast.LENGTH_SHORT).show();
            }
        });
        AlertDialog dialog=builder.create();
        dialog.show();
    }
    /**
     *单选对话框,使用得是setSingleChoiceItems方法,定义一个String【】数组,用来存储选项。
     */

    public void click2(View view){
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("请选择你的性别");
        final String[] item={"男","女"};
        builder.setSingleChoiceItems(item, -1, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, "你的选择是"+item[which], Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, "取消选择", Toast.LENGTH_SHORT).show();
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.show();
    }
    /**
     * 多选对话框,运用的是setMultChoiceItems()方法,需要定义一个String【】数组,以及一个Boolean【】(表示初始选中状态)数组
     */

    public void click3(View view){
        AlertDialog .Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("请选择你感兴趣的课程");
        final String[] item={"java","c#","php","android","js","python","SQL","c++"};
        boolean[] checked={false,false,false,false,false,false,false,false};
        builder.setMultiChoiceItems(item,checked, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Toast.makeText(DialogActivity.this, item[which], Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.show();
    }
    /**
     *进度对话框,progressDialog
     */

    public void click4(View view){
        final ProgressDialog pd=new ProgressDialog(this);
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        pd.setMax(100);
        pd.setTitle("提醒");
        pd.setMessage("正在加载数据。。。请稍后");
        pd.show();
        new Thread(){
            @Override
            public void run() {
                for (int i=0;i<=100;i++) {
                    try {
                        Thread.sleep(300);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    pd.setProgress(i);
                }
                pd.dismiss();
            };
        }.start();
    }
}
MainActivity.java
package com.example.notificationdemo;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button= (Button) findViewById(R.id.send);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.send:
                Intent intent=new Intent(this,NotificationActivity.class);
                PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,0);
                NotificationManager manager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                Notification notification=new NotificationCompat.Builder(this)
                        .setContentTitle("通知标题")
                        .setContentText("通知内容")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
                        .setContentIntent(pendingIntent)
                        .setAutoCancel(true)//点击通知栏后通知栏消失
                      //  .setVibrate(new long[]{0,1000,1000,1000})//控制震动
                        //.setLights(Color.GREEN,1000,1000)//灯光颜色
                       // .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.img1)))
                        //插入图片
                        .setPriority(NotificationCompat.PRIORITY_MAX)//通知重要程度
                        .build();
                manager.notify(1,notification);
                break;
            default:
                break;
        }
    }
}
NotificationActivity.java
package com.example.notificationdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class NotificationActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notifitication_layout);
    }
}
activity_dialog.xml
 

 

  
    
  
    
  
    
  


 
activity_main.xml
 

 

    
  


 
notifitication_layout.xml
 

 

  

 
自定义对话框 方法
public void click5(View view){
        LayoutInflater inflater=LayoutInflater.from(this);
        view =inflater.inflate(R.layout.auto_dialog_layout,null);
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("自定义对话框");
        builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.setView(view);
        builder.show();

    }
自定义对话框 xml
网友评论