2011-07-19 9 views
2

簡単な質問:cancel()を呼び出すまで消えることのないトーストメッセージを表示する方法はありますか?Android SDKが消え去るのを避ける

duration9999のように設定しようとしましたが、動作しません。

答えて

4

の種類のDialogを使用する必要がcancel.Youとそれを制御する方法はないトーストメッセージを表示する方法はありません私はそれにキャンセル()を呼び出すまで消え去る?

いいえ、直接ではなくSDKから、しかし、あなたは、それはそれであなたがスレッドを使用したい何度でもshow()を呼び出すことで、より長く生きる作るためにあなたのToastを「微調整」することができます。詳細については、this articleを参照してください。

3

Toastあなたがそれをキャンセルするまで去りませんはDialog(またはAlertDialog)と呼ばれます。 Toast.setDuration()に渡す整数は、値ではなくフラグです。Toast.LENGTH_SHORTToast.LENGTH_LONGの値しか認識されません。

1

トーストメッセージがtime.thereで動作する目的

1

Toast calssの説明は言う:

「乾杯は、ユーザーのために迅速な小さなメッセージを含む図である トーストクラスを作成し、それらを示すことができます...。」

」あなたが見たい情報を ユーザに表示しながら、できるだけ目立たないようにすることです.2つの例は、ボリューム の制御と、設定が に保存されているという簡単なメッセージです。 "

durationパラメータは、それぞれLENGTH_LONGまたはLENGTH_SHORT-1または0のいずれかである必要があります。

トーストのように見えるダイアログを使用する必要がありますが、これはユーザーがトーストから予期しているものではないため、これを行うことはお勧めできません。

0

公式ドキュメントは(http://developer.android.com/reference/android/widget/Toast.html#makeText(android.content.Context, int, int))言う:

public static Toast makeText (Context context, int resId, int duration) 

Since: API Level 1 
Make a standard toast that just contains a text view with the text from a resource. 
Parameters 

context The context to use. Usually your Application or Activity object. 
resId  The resource id of the string resource to use. Can be formatted text. 
duration How long to display the message. Either LENGTH_SHORT or LENGTH_LONG 
Throws  Resources.NotFoundException if the resource can't be found. 

これはそれを行うための直接的な方法がないことを意味します。このためにカスタムコードを作成する必要があります。トーストは互いに重複しているので、スレッドごとに1秒ごとに同じトーストを呼び出し、cancel()カスタムメソッドを使用してそのスレッドを終了させることができます。

0

私はこの記事が古いことを知っていますが、それ以外のものについては、私はSuperToastsと呼ばれる小さなライブラリを使用することを歓迎する以上のものです。

ライブラリhereがあります。

アクティビティに追加されるトースト、つまりSuperActivityToastには不確定なオプションがあります。私は意図的に標準Toastを模倣する標準のSuperToastsにこの機能を追加しませんでした。なぜなら、SuperToastは、あなたのアプリケーションがActivityでなくWindowManagerに追加されるまで、アプリケーションが終了するまで待つことができるからです。SuperActivityToastsはアクティビティのコンテンツに追加され、アクティビティとともに破棄されるため、それらを不確定にすることができます。

関連する問題