web-dev-qa-db-ja.com

トーストをキャンセルする方法

Androidアプリケーションを開発しましたが、Toastで問題が発生しています。トーストを表示しているとすると、アプリケーションウィンドウに表示されます。ダイアログボックスが表示されたら、トーストはすぐには消えません。

トーストをキャンセルする方法を知りたいのですが。

24
DroidBot

_Toast.makeText_はToastオブジェクトを返します。このオブジェクトでcancel()を呼び出して、キャンセルします。

43
EboMike

トーストに指定できる最短の時間はToast.LENGTH_SHORT値は0しかし、実際には2000 milliseconds long。それより短くしたい場合は、これを試してください。

    final Toast toast = Toast.makeText(ctx, "This message will disappear in 1 second", Toast.LENGTH_SHORT);
    toast.show();

    Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               toast.cancel(); 
           }
    }, 1000); //specify delay here that is shorter than Toast.LENGTH_SHORT
6
noypiscripter

カスタムトーストを作る必要はないと思います。

Toastクラスのインスタンスを1つだけ作成します。 toast.setText("string")を使用してトーストのテキストを設定し、toast.cancel()メソッドでonDestroy()メソッドを呼び出します。

次のように動作するコードスニペット:

package co.toast;

import Android.annotation.SuppressLint;
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.Button;
import Android.widget.Toast;

public class ShowToastActivity extends Activity {
    private Toast toast = null;
    Button btnShowToast;

    @SuppressLint("ShowToast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // creates only one toast object..
        toast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG);

        btnShowToast = (Button) findViewById(R.id.btnShowToast);

        btnShowToast.setOnClickListener(new OnClickListener() {

             @Override
             public void onClick(View v) {

                // only set text to toast object..
                toast.setText("My toast!");
                toast.show();
            }
        });
    }

    @Override
    protected void onDestroy() 
    {
        toast.cancel();
        super.onDestroy();
    }

    @Override
    protected void onStop () {
        super.onStop();
        toast.cancel();
    }
}

これがお役に立てば幸いです。

4
Swapnil Sonar

これは、Toastcancel()メソッドを使用した基本的な例です。

Toast mytoast;
mytoast = Toast.makeText(getApplicationContext(), "Hi Ho Jorgesys! ", Toast.LENGTH_LONG);
mytoast.show();
....
....
....
if(CancelToast){
  mytoast.cancel();
}
0
Jorgesys

Tostのcancelメソッドを使用します:toast.cancel();

0
Mahesh
Toast toast;

private void showToast(String text) {
    if (toast!=null)
        toast.cancel();
    toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
    toast.show();
}
0
Dan Alboteanu