2012-05-09 9 views
1

私のアクティビティがDBからデータを取得しないとき、私はToastメッセージを表示します。その後、私は以前のアクティビティを充電しますが、この充電は非常に速く、Toastメッセージはまだ数秒です。私はこのメッセージの持続時間が欲しいですが、メッセージの後に開始したいアクティビティの開始を遅らせる方法はわかりません。Toastメッセージの後にアクティビティを開始

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState);  
setContentView(R.layout.aeiou); 

... 

if(!oArrayList.isEmpty()){ 

    ... 

}else{   
    Toast.makeText(this.getApplicationContext(), "NO hay datos", Toast.LENGTH_LONG).show();  

    Intent intent = new Intent(this, PreviousActivity.class); 
    startActivity(intent); 
}  

}

+0

Toast.makeText(this.getApplicationContext()、 "NO hay datos"、Toast.LENGTH_LONG).show(); Toast.LENGTH_LONGを変更してください。静的トーストメソッドの持続時間の代わりにmilsを使用できます。 – Tugrul

+0

ありがとうございますが、メッセージに同じ問題があります。次のアクティビティが開始されるときにそこにあります。そして、メッセージの持続時間、Toast.LENGTH_LONGは私のために良いです。 – JoseAntonio1984

答えて

3

が欲しいために活動を開始遅らせます。

...}else{   
     Toast.makeText(this.getApplicationContext(), "NO hay datos", Toast.LENGTH_LONG).show();    

     final Intent intent = new Intent(this, OtherActivity.class);   

     Thread thread = new Thread(){ 
      @Override 
      public void run() { 
       try { 
        Thread.sleep(3500); // As I am using LENGTH_LONG in Toast 
        startActivity(intent); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 

     thread.start(); 
    }    
+1

回答ありがとうございました。私はこの方法を見つけ、働きました。どう思いますか ? – JoseAntonio1984

2

私の知る限りでは、トーストの持続時間は、両方のユーザが定義することができ、二つの値(長い及び短い)のいずれかに設定することができます。

あなた自身の時間を設定し、また、それが終わったとき、あなたの代わりにトーストに建てられたの独自のメカニズムを作成する必要があります通知するために...

は、ダイアログ(多分progressDialog)のいずれかを使用してみてくださいまたは他のすべての上に表示されるビューを作成します。

2
Toast.makeText(this, "your message", Toast.LENGTH_LONG).show(); 

(new Handler()) 
    .postDelayed(
    new Runnable() { 
    public void run() { 
    // launch your activity here 
    } 
    }, timeInMillisecondTheToastIsShowingFor); 

しかし、これは長い間、あなたが「他」私はトーストメッセージが表示されている間、眠るスレッドを追加し、起動後の次のアクティビティ内

関連する問題