簡體   English   中英

如何顯示在Android中立即覆蓋舊Toast的新Toast

[英]How to display new Toast that overrides old Toast in no time in android

我在android中以對話框的形式顯示了一個值數組,點擊任何項目,顯示特定的吐司。 現在,如果我在下一刻點擊此列表(陣列)上的其他項目,則在短時間(大約5秒)之后顯示該特定的吐司,直到顯示舊的吐司。 如果我想在選擇/點擊列表中的其他項目后立即顯示新的Toast,我該怎么辦

那么有人可以告訴我實現這一目標的邏輯是什么?

例如,考慮這個代碼 -

     String NumberOfItems[] = { "1", "2", "3" };
     Activity mActivity;
     int id =0;
     AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
     builder.setIcon(R.drawable.ic_launcher);
     builder.setTitle(R.string.dialog_heading);
     builder.setSingleChoiceItems(NumberOfItems, id, new DialogInterface.OnClickListener() 
      {
        public void onClick(DialogInterface dialog, int id)
         {

       switch(id)
         {
         case 0:
              Toast.makeText(mActivity.getBaseContext(),"Item selected is 1",Toast.LENGTH_SHORT).show();
                   break;
         case 1:
              Toast.makeText(mActivity.getBaseContext(),"Item selected is 2",Toast.LENGTH_SHORT).show();
                   break;
         case 2:
              Toast.makeText(mActivity.getBaseContext(),"Item selected is 3",Toast.LENGTH_SHORT).show();
                   break;

                } 

          }
        });  
            AlertDialog alertDialog =  builder.create();
            alertDialog.show(); 

現在顯示包含3個項目的對話框,點擊第1個項目顯示“項目選擇為1”我很快點擊下一個項目,但在約5秒后顯示“項目選擇為2” 但如果我想立即顯示第二項 ,我該怎么辦?

簡而言之,刷新Toast的邏輯是什么?

任何幫助是極大的贊賞。

您可以在活動中初始化單個Toast。 然后在每次單擊時更改其文本。

Toast mToast = Toast.makeText( this  , "" , Toast.LENGTH_SHORT );

 switch(id)
     {
     case 0:
           mToast.setText( "Item selected is 1" );
           mToast.show();

               break;
     case 1:
          mToast.setText( "Item selected is 2" );
          mToast.show();
               break;
     case 2:
          mToast.setText( "Item selected is 3" );
          mToast.show();
               break;
            } 
      }
    });  

我認為這對你有用。

更多信息

參考那個吐司。 通常每個人都使用Toast.makeText(..)來顯示toast並且不會創建引用

Toast t = new Toast(this, "Text 1", Toast.LENGTH_LONG);
t.show();
t.cancel();
t = new Toast(this, "Text 2", Toast.LENGTH_LONG);
t.show();


t.show(); 將堆疊吐司並按順序顯示它們。 你必須調用cancel()來取消祝酒。 現在它的t.cancel()產生了不同。
此代碼將取消“文本1”吐司,如果它正在顯示並立即顯示“文本2”。
您可以根據需要使用此代碼並進行適當的變更。

我想你想以較低的頻率顯示吐司,並根據我的考慮顯示在這個應用程序中顯示的消息。

為此,您可以使用相對布局做一件事,並且在listview上放置一個帶有toast等背景的textview,並在點擊的項目上應用文本值並在其上使用show hide。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM