开发步骤:

  • 在toast_customer.xml文件中添加一个图片组件对象显示提示图片
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout ......> <ImageView android:id="@+id/toastIcon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"/> ...... </LinearLayout>
  • 在LoginActivity.java类中的自定义Toast调用方法中添加对图片组件的设置
 public class LoginActivity extends AppCompatActivity {

     ........

     private void showCustomerToast(final int icon, final String message){
LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.toast_customer, (ViewGroup) findViewById(R.id.toast_layout_root));
...... //图片组件的设置
ImageView toastIcon=(ImageView)layout.findViewById(R.id.toastIcon);
toastIcon.setBackgroundResource(icon); ...... Toast toast=new Toast(getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
}
......
}
  • 调用该方法
 public class LoginActivity extends AppCompatActivity {
......
private class ViewOcl implements View.OnClickListener{
public void onClick (View v){
......
if (login_flag) {
showCustomerToast(android.R.drawable.ic_menu_call,"欢迎登录," + account);
......
}
else {
showCustomerToast(android.R.drawable.ic_delete,"账号或密码错误");
}
break;
......
}
}
......
}

运行:

接下来,同理,把自定义方法showCustomerToast()放入Register_Activity.java中,在Checkform()中调用,修改注册页面的警告样式:

 public class Register_Activity extends AppCompatActivity {
......
private boolean checkform() {
if (this.txtRegAccount.getText().toString() == null || this.txtRegAccount.getText().toString().length() == 0) { //Toast.makeText(getApplicationContext(), "警告:注册账号不能为空", Toast.LENGTH_LONG).show();
showCustomerToast(android.R.drawable.ic_delete, "警告:注册账号不能为空");
return false;
}
if (this.txtRegPassword.getText().toString() == null || this.txtRegPassword.getText().toString().length() == 0) {
//Toast.makeText(getApplicationContext(), "警告:注册密码不能为空", Toast.LENGTH_LONG).show();
showCustomerToast(android.R.drawable.ic_delete,"警告:注册密码不能为空");
return false;
}
if (!(this.txtRegPassword.getText().toString()).equals((this.txtReRegPassword.getText().toString()))) {
//Toast.makeText(getApplicationContext(), "警告:两次密码不一致", Toast.LENGTH_LONG).show();
showCustomerToast(android.R.drawable.ic_delete,"警告:两次密码不一致");
return false;
}
return true;
}
......
}

运行:

提示框的优化之自定义Toast组件之(三)Toast组件优化的更多相关文章

  1. Android消息提示框Toast

    Android消息提示框Toast Toast是Android中一种简易的消息提示框.和Dialog不一样的是,Toast是没有焦点的,toast提示框不能被用户点击,而且Toast显示的时间有限,t ...

  2. 使提示框居中显示&自定义提示框

    ToastActivity.java文件: 1 public class ToastActivity extends AppCompatActivity { 2 private Button mbtn ...

  3. uni-app开发经验分享六:页面跳转及提示框

    在我们开发的uni-app的过程中,页面跳转及提示框往往是我们做数据交互及结果反馈所要使用的功能,这里分享下我收集的一些方法及看法. 一:页面跳转 事件跳转 :指通过tap等事件来实现页面的跳转,跳转 ...

  4. toastr操作完成提示框

    toastr.js组件 关于信息提示框,项目中使用的是toastr.js这个组件,这个组件最大的好处就是异步.无阻塞,提示后可设置消失时间,并且可以将消息提示放到界面的各个地方. 官方文档以及源码 源 ...

  5. 【转】js弹出框、对话框、提示框、弹窗总结

    js弹出框.对话框.提示框.弹窗总结 一.js的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹 ...

  6. js js弹出框、对话框、提示框、弹窗总结

    js弹出框.对话框.提示框.弹窗总结 一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹 ...

  7. 提示框的优化之自定义Toast组件之(二)Toast组件的业务逻辑实现

    在java下org.socrates.mydiary.activity下LoginActivity下自定义一个方法showCustomerToast()  public class LoginAct ...

  8. vue2.0 自定义 提示框(Toast)组件

    1.自定义 提示框 组件 src / components / Toast / index.js /** * 自定义 提示框( Toast )组件 */ var Toast = {}; var sho ...

  9. vue 自定义 提示框(Toast)组件

    1.自定义 提示框 组件 src / components / Toast / index.js /** * 自定义 提示框( Toast )组件 */ var Toast = {}; var sho ...

  10. Android开发 ---构建对话框Builder对象,消息提示框、列表对话框、单选提示框、多选提示框、日期/时间对话框、进度条对话框、自定义对话框、投影

    效果图: 1.activity_main.xml 描述: a.定义了一个消息提示框按钮 点击按钮弹出消息 b.定义了一个选择城市的输入框 点击按钮选择城市 c.定义了一个单选提示框按钮 点击按钮选择某 ...

随机推荐

  1. 服务器安装VMware ESXI5.5

    一.VMware ESXI5.5 vSphere5.5 VIMSetup下载http://blog.sina.com.cn/s/blog_61c07ac50101gy64.html(1)VMware安 ...

  2. 去除tableView上面的黑色部分 解决办法

    把上面的黑色去掉  只需在 viewDidLoad 中添加代码 self.automaticallyAdjustsScrollViewInsets=NO;就好了... 效果图 如下

  3. 浅谈Block传值-匿名函数(代码块)

    block传值是从后往前传值---代理也是 // 使用block时, 不能访问self, 也不能直接访问属性, self.属性, 用self调用方法; 只要这样做了, block都会对其强引用一份, ...

  4. Oracle 账户被锁定

    哎 每次安装oracle的时候总是忘了将用户解锁,结果就蛋疼了,从网上找到一个简单的解决方案 在CMD命令输出如下: sqlplus /nolog alert user system account ...

  5. CSS凹型导航按钮

    一般需求,圆角看起来更加舒服,但是下面直角略显生硬 于是设计师有了下面的需求,下面加上小凹型: 凹型?凹型?凹型?有点变态,这怎么实现........... 图片肯定是最先考虑到的,CSS实现有貌似有 ...

  6. 用document.onreadystatechange和document.readyState确保文档加载完毕才获取DOM

    document.onreadystatechange = function(){ //document.readyState有“interactive”和“complate”两个值 if(docum ...

  7. django的model对象转化成dict

    今天发现一个掉渣天的方法,Django的forms包里面有一个方法:model_to_dict(),它可以将一个model对象转化成dict. In [1]: from apps.dormitory. ...

  8. Manasa and Stones

    from __future__ import print_function def main(): t = int(raw_input()) for _ in range(t): n = int(ra ...

  9. un ange frappe a ma porte

    Un signe, une larme 魂牵 泪扰 un mot, une arme 字断 情烧 nettoyer les étoiles à l'alcool de mon ame 灵魂之酒眷洗 星 ...

  10. Android-2

    传递简单数据 //发送方i.putExtra("data",t.getText().toString()); //接收方Intent i = getIntent();m = (Ed ...