前言
安卓中常用的提示控件Snackbar,Alertdialog ,Toast 都有对用户操作进行提示功能但是他们之间也是有差别的
- Alertdialog 它会覆盖在界面的最上面,提示你,并且一般都需要进行具体操作才可以进行下一步(具有强制性,并且对用户不怎么友好)
- Toast 只是一般的提示作用,只是告诉用户进行某项操作,而不会对用户选择有直接的影响
- Snackbar 是加强版的Toast 他也是对用户提示但是它允许用户对自己操作 进行详情确认和查看,类似知乎的 评论成功后的 查看
Toast
Toast是可以优化使用的当你重复点击按钮时,我们可以通过判断是否显示 来解决该问题:使重复点击只显示一次
public class Utils {
private static Toast toast;
public static void show(Context context,String name){
if (toast==null){
toast=Toast.makeText(context,name,Toast.LENGTH_SHORT);
}else {
toast.setText(name);
}
toast.show();
}
}
效果
Alertdialog
Alertdialog 用法也比较简单详情见注释
// AlertDialog
public void Onclick1(View v){
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("标题");
builder.setMessage("这是一个Alertdialog");
// builder.setView(); 如果要引入自定义布局引用的话只需要调用该方法
// 选中操作的逻辑
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击按钮让AlertDialog消失
dialog.dismiss();
}
});
// 放弃选择的逻辑操作
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击按钮让AlertDialog消失
dialog.dismiss();
}
});
builder.create().show();
Snackbarbar
Snackbar 也比较简单要注意的是传入的布局 v是我们要展示 所相对于的位置
//Snackbar
public void Onclick2(View v){
Snackbar.make(v,"这是一个Snackbar ",Snackbar.LENGTH_SHORT)
.setAction("查看详情", new View.OnClickListener() {
@Override
public void onClick(View v) {
// 具体的逻辑操作
}
})
.show();