在Android上显示消息

时间:2012-07-03 18:21:43

标签: android

下午好,

如何在不使用Android上的Toast的情况下显示消息几秒钟?

例如,如果用户登录良好,那么我想显示“用户已成功登录”等消息在X秒内消失。

我该怎么做?

非常感谢

5 个答案:

答案 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