下午好,
如何在不使用Android上的Toast的情况下显示消息几秒钟?
例如,如果用户登录良好,那么我想显示“用户已成功登录”等消息在X秒内消失。
我该怎么做?
非常感谢
答案 0 :(得分:2)
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
答案 1 :(得分:0)
答案 2 :(得分:0)
试试这个......
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()中;方法你可以使用对话框。
答案 3 :(得分:0)
如果您不想使用“确定”按钮来关闭该消息,您可以将其作为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全局变为您的Activity,以便您可以从任何地方进行这些调用。
我认为使用ProgressDialog会让用户觉得这种情况会自行消失,否则,他们会盯着一个“不可忽视”的提示,并对如何继续进行混淆。
答案 4 :(得分:0)
您可以使用PopupWindow显示按钮,就像Toast一样,不会阻止当前用户界面。但是您需要使用runOnUiThread的线程在X秒后关闭PopupWindow。
参见使用弹出窗口示例
http://android-er.blogspot.in/2012/03/example-of-using-popupwindow.html