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

  • 在java下org.socrates.mydiary.activity下LoginActivity下自定义一个方法showCustomerToast() 
 public class LoginActivity extends AppCompatActivity {
private void showCustomerToast(final int icon, final String message){
LayoutInflater inflater=getLayoutInflater(); //通过获取LayoutInflater对象创建一个LayoutInflater接口对象
View layout=inflater.inflate(R.layout.toast_customer, (ViewGroup) findViewById(R.id.toast_layout_root)); //使用Inflater对象中Inflater方法绑定自定义Toast的布局文件,同时指向该布局文件中跟标记节点 ImageView toastIcon=(ImageView)layout.findViewById(R.id.toastIcon);
toastIcon.setBackgroundResource(icon); TextView toastMessage = (TextView)layout.findViewById(R.id.toastMessage); //获取该布局文件中的TextView组件并为其动态赋值
toastMessage.setText(message); Toast toast=new Toast(getApplicationContext()); //实例化一个Toast组件对象
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout); ////将设置好的定制布局与当前的Toast对象进行绑定
toast.show(); //显示Toast组件
}
}

业务逻辑流程:

(1)通过获取LayoutInflater对象创建一个LayoutInflater接口对象

(2)使用Inflater对象中Inflater方法绑定自定义Toast的布局文件,同时指向该布局文件中跟标记节点

(3)获取该布局文件中的TextView组件并为其动态赋值

(4)实例化一个Toast组件对象

(5)将设置好的定制布局与当前的Toast对象进行绑定

(6)显示Toast组件

  • 在指定位置调用该方法
 private  class ViewOcl implements View.OnClickListener{
@Override
public void onClick (View v){
switch (v.getId()){
case R.id.btnLogin:
String account=txtAccount.getText().toString().trim();
String password=txtPassword.getText().toString().trim();
boolean login_flag =false; if (login_flag) {
showCustomerToast(android.R.drawable.ic_menu_call,"欢迎登录," + account); //在指定位置调用该方法 break; }
else {
showCustomerToast(android.R.drawable.ic_delete,"账号或密码错误"); //在指定位置调用该方法
}
break;
}
}
}

运行:

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

上一篇:Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”


下一篇:实验五 Java网络编程及安全 实验报告 20135232王玥