Android 常用控件使用总结

本文总结了Android开发中常用的三种控件的使用:通知、菜单和AlertDialog。对于通知,讲解了从基础用法到Android 8.0后的Channel设置。菜单部分介绍了如何创建及响应菜单项点击事件。最后,详细阐述了如何使用AlertDialog显示对话框。
摘要由CSDN通过智能技术生成

目录

1.通知的使用

2.菜单的使用

3.AlertDialog的使用


  1.通知的使用

   通知在状态栏,锁屏画面显示我们发送的信息,提醒用户。通知用法比较灵活,可以在活动中创建,也可以在服务,广播接收器里创建。下面以在活动中创建为例,代码如下:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Notification.Builder builder = new Notification.Builder(this); //创建Builder对象
        NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);  //创建通知管理
        Intent intent = new Intent(this,FirstActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0); //点击通知后的意图
        builder.setAutoCancel(true)      //设置各种属性
                .setContentIntent(pendingIntent)
                .setContentTitle("通知")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentText("7777777");
        manager.notify(1,builder.build());  //发送通知

    }

}

上面就是一个普通通知的用法。首先创建通知的Builder对象,通过Bulider对象设置各种属性,可以设置通知的标题,内容,点击事件的响应,通知的发送时间等。(小图标,内容,标题必须设置,否则会报错,其他属性为可选项)。PendingIntent表示点击通知后的响应,上面表示跳转到FirstActivity。如果在服务中创建,需调用PendingIntent.getService(),在广播接收器中需调用PendingIntent.getBroadcast()获取实例。第一个参数为Context,第二个参数为requestCode,一般传入0,第三个参数为Intent对象,表示我们的响应,第四个位标志位,确定PendingIntent的行为,具体看:https://blog.csdn.net/piglite/article/details/46581789

android8.0之后,上面的代码就不起作用了,他会提示你没有设置channel。所以,应该将代码进行修改:

public class MainActivity extends AppCompatActivity {

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String channelID = "1"; 
        String channelName = "channel_name";
        NotificationChannel channel = new NotificationChannel(channelID, channelName, NotificationManager.IMPORTANCE_HIGH);   //构建channel实例
 NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
        Notification.Builder builder = new Notification.Builder(this);
        Intent intent = new Intent(this,FirstActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0);
        builder.setAutoCancel(true)
                .setContentIntent(pendingIntent)
                .setContentTitle("通知")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setChannelId(channelID)  //设置id
                .setContentText("7777777");
      
        manager.createNotificationChannel(channel); //创造channel
        manager.notify(1,builder.build());

    }

}

上面是普通的通知用法,我们还可以自定义视图,设置更多的属性来丰富通知。

2.菜单的使用

   菜单的使用比较简单。首先在res目录下先建一个menu文件夹,右键这个文件夹,选择新建Menu resourse file,输入文件名点击创建即可。在这个文件进行编写。如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/one"
        android:title="one"/>
    <item
        android:id="@+id/two"
        android:title="two"/>
    <item
        android:id="@+id/three"
        android:title="three"/>
</menu>

添加了3个item,接着在菜单显示的活动中重写onCreateOptionsMenu()方法,如下:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
    }

 这样菜单就在活动中显示了,但还无法响应点击事件,还需重写onOptionsItemSelected()方法。如下:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.one:
                Toast.makeText(this,"one",Toast.LENGTH_SHORT).show();
                break;
            case R.id.two:
                Toast.makeText(this,"two",Toast.LENGTH_SHORT).show();
                break;
            case R.id.three:
                Toast.makeText(this,"three",Toast.LENGTH_SHORT).show();               
                break;
             default:
                 break;
        }
        return true;
    }

 这样菜单项就可以响应点击事件了,点击一下弹出一条Toast。

3.AlertDialog的使用

   AlertDialog可以在当前画面弹出一个对话框,一般用于提示非常重要的的内容,用法如下:

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
        alertDialog.setTitle("title");  //设置标题
        alertDialog.setMessage("7777777");  //设置提示信息
        alertDialog.setCancelable(false);   //是否点击屏幕可取消
        //确定按钮点击事件
        alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        //取消按钮点击事件
        alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
        alertDialog.show(); //显示

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值