2013-10-30 62 views
0

我有一個對話框,在其中播放gif動畫。我想在特定時間段後停止動畫並返回到第二個活動。但是當我完成gif動畫時,活動將回到我不想要的第一個活動。 這是我試過的代碼。停止動畫並返回到第二個活動

 ImageButton apple = (ImageButton)findViewById(R.id.imageButton1); 
    apple.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      AlertDialog.Builder builder = new AlertDialog.Builder(Fruits.this); 
      WebView view = new WebView(Fruits.this); 
      view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      builder.setView(view); 
      builder.create().show(); 
      view.loadUrl("file:///android_asset/apple.gif"); 

      gifIsPlaying = true; 

      new Handler().postDelayed(new Runnable() { 
       public void run() { 
        gifIsPlaying = false; 
        finish(); 
       } 
      }, PLAYING_TIME_OF_GIF); 

     } 

    }); 

回答

1

這是因爲finish()結束Activity。你應該dismiss()Dialog這樣:

ImageButton apple = (ImageButton) findViewById(R.id.imageButton1); 
apple.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     AlertDialog.Builder builder = new AlertDialog.Builder(Fruits.this); 
     WebView view = new WebView(Fruits.this); 
     view.setLayoutParams(
       new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     builder.setView(view); 
     final Dialog d = builder.create(); // save a Dialog reference here 
     d.show(); 
     view.loadUrl("file:///android_asset/apple.gif"); 

     gifIsPlaying = true; 

     new Handler().postDelayed(new Runnable() { 
      public void run() { 
       gifIsPlaying = false; 
       if (d.isShowing()) { // dismiss dialog if still showing 
        d.dismiss(); 
       } 
      } 
     }, PLAYING_TIME_OF_GIF); 

    } 
}); 
相關問題