こんにちは、
Android で Toast を使用せずにメッセージを数秒間表示するにはどうすればよいですか?
たとえば、ユーザーが正常にログインした場合、「ユーザーが正常にログインしました」などのメッセージが X 秒で消えます。
どうすればいいですか?
どうもありがとうございます
こんにちは、
Android で Toast を使用せずにメッセージを数秒間表示するにはどうすればよいですか?
たとえば、ユーザーが正常にログインした場合、「ユーザーが正常にログインしました」などのメッセージが X 秒で消えます。
どうすればいいですか?
どうもありがとうございます
final Handler handler = new Handler();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("FooBar !");
final AlertDialog dialog = builder.create();
dialog.show();
handler.postDelayed(new Runnable() {
public void run() {
dialog.dismiss();
}
}, 3000); // Dismiss in 3 Seconds
「OK」ボタンでメッセージを閉じたくない場合は、ProgressDialogとして表示し、このように数秒後に自分で閉じることができます...
ProgressDialog pd;
pd = ProgressDialog.show(context, "Title", "sub title");//context is probably `this`
Handler h= new Handler();
Runnable cancelDialog = new Runnable(){
pd.dismiss();
};
h.postDelayed(cancelDialog, 3000);//this will be called in 3 seconds
さまざまな呼び出しを、関連するメソッドまたはボタンの押下に分散させることができます。ProgressDialog、Handler、およびRunnableをアクティビティに対してグローバルにして、どこからでもこれらの呼び出しを行えるようにします。
ProgressDialogを使用すると、これは自然になくなるだろうとユーザーに感じさせると私は主張します。そうしないと、「却下」されないプロンプトを見つめ、続行する方法について混乱します。
PopupWindowを使用して、現在の UI をブロックせずに Toast と同じようにメッセージを表示できますが 、X 秒後にPopupWindow を閉じるには、 runOnUiThreadでスレッドを使用する必要があります。
ポップアップウィンドウの使用例を参照してください
http://android-er.blogspot.in/2012/03/example-of-using-popupwindow.html
これを試して...
while(needToDisplayData)
{
displayData(); // display the data
Thread.sleep(10000); // sleep for 10 seconds
}
または、タイマーを使用できます。
int delay = 1000; // delay for 1 sec.
int period = 10000; // repeat every 10 sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
displayData(); // display the data
}
}, delay, period);
displayData(); で メソッドuはダイアログを使用できます。