0

下午好,

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

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

我该怎么办?

非常感谢你

4

5 回答 5

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
于 2012-07-03T18:29:24.833 回答
0

警告对话框?

http://developer.android.com/reference/android/app/AlertDialog.html

于 2012-07-03T18:24:08.987 回答
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); 

在显示数据()中;方法你可以使用一个对话框。

于 2012-07-03T18:24:24.567 回答
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 会给用户一种感觉,这种感觉会自行消失,否则,他们会盯着一个不可“解雇”的提示,并且对如何继续感到困惑。

于 2012-07-03T18:28:48.783 回答
0

您可以使用PopupWindow像 Toast 一样显示按摩而不阻塞当前 UI。但是您需要使用带有runOnUiThread的线程 在 X 秒后关闭 PopupWindow。

请参阅使用弹出窗口的示例

http://android-er.blogspot.in/2012/03/example-of-using-popupwindow.html

于 2012-07-03T18:45:48.290 回答