在 startactivity 后显示 snackbar
Show snackbar after startactivity
我在我的应用程序中创建了一个退出按钮。
一旦用户点击注销,它就会注销并移动登录 activity。
我希望一旦用户点击注销,它将移动到登录页面,然后显示 snackbar
说“您已成功注销”。
如何让 snackbar
只在移动到新的 activity 后才出现?因为现在它不会显示,因为它更改了 activity.
public void signOut(){
auth.signOut();
AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener( task -> {
Intent intent = new Intent(ChangePassActivity.this, SignInActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Pop_Snack("you have been signed out successfully");
finish();
} );
}
public void Pop_Snack(String text){
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content),text,Snackbar.LENGTH_SHORT);
View sbView = snackbar.getView();
sbView.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
TextView tv = (TextView) (snackbar.getView()).findViewById(com.google.android.material.R.id.snackbar_text);
Typeface font = ResourcesCompat.getFont(getBaseContext(), R.font.assistant);
tv.setTypeface(font);
tv.setTextSize( 14 );
snackbar.setAnchorView(findViewById( R.id.bottom_navigation ));
snackbar.setDuration( 5000 );
snackbar.show();
}
谢谢
您可以在要显示 Snackbar
的 activity 中创建一个默认为 false
的静态 boolean
变量 isloggedOut
。当您从 activity 注销时,将 boolean
变量设置为 true
并签入要显示 [=] 的新 Activity 的 onCreate
方法15=].
if(isloggedOut){
Snackbar snackbar = Snackbar.make(view, "Text to display",
Snackbar.LENGTH_LONG);
snackbar.show();
}
在您的注销方法中
public void signOut(){
auth.signOut();
AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener( task -> {
Intent intent = new Intent(ChangePassActivity.this, SignInActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
NewActivity.isloggedOut = true;
finish();
} );
}
我在我的应用程序中创建了一个退出按钮。
一旦用户点击注销,它就会注销并移动登录 activity。
我希望一旦用户点击注销,它将移动到登录页面,然后显示 snackbar
说“您已成功注销”。
如何让 snackbar
只在移动到新的 activity 后才出现?因为现在它不会显示,因为它更改了 activity.
public void signOut(){
auth.signOut();
AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener( task -> {
Intent intent = new Intent(ChangePassActivity.this, SignInActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Pop_Snack("you have been signed out successfully");
finish();
} );
}
public void Pop_Snack(String text){
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content),text,Snackbar.LENGTH_SHORT);
View sbView = snackbar.getView();
sbView.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
TextView tv = (TextView) (snackbar.getView()).findViewById(com.google.android.material.R.id.snackbar_text);
Typeface font = ResourcesCompat.getFont(getBaseContext(), R.font.assistant);
tv.setTypeface(font);
tv.setTextSize( 14 );
snackbar.setAnchorView(findViewById( R.id.bottom_navigation ));
snackbar.setDuration( 5000 );
snackbar.show();
}
谢谢
您可以在要显示 Snackbar
的 activity 中创建一个默认为 false
的静态 boolean
变量 isloggedOut
。当您从 activity 注销时,将 boolean
变量设置为 true
并签入要显示 [=] 的新 Activity 的 onCreate
方法15=].
if(isloggedOut){
Snackbar snackbar = Snackbar.make(view, "Text to display",
Snackbar.LENGTH_LONG);
snackbar.show();
}
在您的注销方法中
public void signOut(){
auth.signOut();
AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener( task -> {
Intent intent = new Intent(ChangePassActivity.this, SignInActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
NewActivity.isloggedOut = true;
finish();
} );
}