吐司消息消失得比预期的早

时间:2018-12-18 22:09:31

标签: android toast

为什么this GIF中显示的吐司消息在消失之前就消失了?我尝试在开始新活动(登录活动)之前,从第一个活动(密码重置活动)显示吐司消息。我还尝试过在onResume()中显示来自新活动的吐司消息,它具有相同的效果。同样,如在GIF中所见,如果我点击应该在的位置,则吐司消息将重新出现,直到它真正完成为止。编辑:实际上,如果我在屏幕上的任何位置点击,都会显示烤面包消息。

编辑:这是敬酒消息的代码:

auth.sendPasswordResetEmail(email)
                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if (task.isSuccessful()) {
                                Toast.makeText(ResetPasswordActivity.this, "We have sent you instructions to reset your password!", Toast.LENGTH_SHORT).show();
                                startActivity(new Intent(ResetPasswordActivity.this, LoginActivity.class));
                                finish();
                            } else {
                                Toast.makeText(ResetPasswordActivity.this, "Failed to send reset email!", Toast.LENGTH_SHORT).show();
                            }

                            progressBar.setVisibility(View.GONE);
                        }
                    });

使用Toast.LENGTH_LONG时遇到相同的问题。它消失的时间与Toast.LENGTH_SHORT相同,但是在我再次轻按以使其恢复时(就像在GIF中一样),它的持续时间更长(如预期的那样)。事实是,我不必点击以使其在整个持续时间内显示。

6 个答案:

答案 0 :(得分:0)

您可以通过更改第三个参数来轻松更改Toast的长度:

Toast.makeText(this, "Hello World", Toast.LENGTH_LONG).show();

int duration;
Toast.makeText(this, "Hello World", duration).show();

答案 1 :(得分:0)

您可以使用处理程序延迟功能

malloc

已修改为您的代码

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //do something 
        }
    }, 3000 ); //time in milisecond

答案 2 :(得分:0)

就放 Toast.makeText(this, "Hello World", Toast.LENGTH_LONG).show();

如果不起作用,请从设备上卸载应用并安装

答案 3 :(得分:0)

尝试将Toast代码放在finish()之后,例如:

auth.sendPasswordResetEmail(email)
                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if (task.isSuccessful()) {
                                startActivity(new Intent(ResetPasswordActivity.this, LoginActivity.class));
                                finish();
                                Toast.makeText(ResetPasswordActivity.this, "We have sent you instructions to reset your password!", Toast.LENGTH_SHORT).show();
                            } else {
                                Toast.makeText(ResetPasswordActivity.this, "Failed to send reset email!", Toast.LENGTH_SHORT).show();
                            }

                            progressBar.setVisibility(View.GONE);
                        }
                    });

答案 4 :(得分:0)

您可以尝试为结果启动RestartPasswordActivity:

Intent intent = new Intent(this, Activity.class);
startActivityForResult(intent);

通过以下方式破坏此活动:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent); 
finish();

并通过以下方式在LoginActivity中获取此值:

@Override protected void onActivityResult(int requestCode, 
int resultCode, Intent data) {
    if (requestCode == 1) { 
        if(resultCode == Activity.RESULT_OK){
            boolean result = data.getBooleanExtra("result"); 
            if(result)
                Toast.makeText(this, "Text", Toast.LENGTH_LONG).show();
        }
    }
}

答案 5 :(得分:0)

Option Explicit

Sub FixSheets()
    Dim ws As Worksheet
    For Each ws In Worksheets
        ws.Activate
        ws.UsedRange.Select
        ActiveWindow.Zoom = True 'Zoom sur la sélection
        ActiveCell.Select
    Next ws
End Sub