2013-10-30 3 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() 은 다음과 같이 입력해야합니다.

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); 

    } 
}); 
관련 문제