2013-11-09 19 views
0

我有3個電影附加到VideoView和3個按鈕:backforwardhome我如何滾動我的所有電影在循環(旋轉木馬般)

我想用循環中的back - forward按鈕滾動瀏覽它們。
當我到達最後一部電影點擊forward鍵時,我想要第一部電影重新開始,並與back鍵一樣,當我到達第一部電影時最後一個開始。

我知道它可能是一個簡單的問題,但我是新來的android,我只是無法弄清楚。

非常感謝!

這是我的主要活動代碼:

public class Blue extends Activity implements OnClickListener{ 

ImageButton back; 
ImageButton home; 
ImageButton forward; 
VideoView vid; 
int count_back=2; 
int count_fw=1; 
String urlpath1; 
String urlpath2; 
String urlpath3; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_blue); 

    AdView adView = (AdView)this.findViewById(R.id.adView); 
    adView.loadAd(new AdRequest()); 

    back = (ImageButton) findViewById(R.id.back); 
    back.setOnClickListener(this); 
    home = (ImageButton) findViewById(R.id.home); 
    home.setOnClickListener(this); 
    forward = (ImageButton) findViewById(R.id.forward); 
    forward.setOnClickListener(this); 


    vid = (VideoView) findViewById(R.id.videoView1); 

    urlpath1 = "android.resource://"+ getPackageName()+"/"+R.raw.blue_01; 
    urlpath2 = "android.resource://"+ getPackageName()+"/"+R.raw.blue_02; 
    urlpath3 = "android.resource://"+ getPackageName()+"/"+R.raw.blue_03; 

    vid.setVideoPath(urlpath1); 
    vid.requestFocus(); 
    vid.start(); 
} 

     @Override 
     public void onClick(View v) { 

      switch(v.getId()){ 

      case R.id.home: 
       vid.stopPlayback(); 
       Intent i = new Intent(Blue.this,MainActivity.class); 
       i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(i); 
       break; 

      case R.id.forward: 
       if(count_fw==0){vid.setVideoPath(urlpath1);count_fw++;count_back=2;vid.requestFocus(); 
       vid.start();} 
       else if(count_fw==1){vid.setVideoPath(urlpath2);count_fw++;count_back=0;vid.requestFocus(); 
       vid.start();} 
       else if(count_fw==2){vid.setVideoPath(urlpath3);count_fw=0;count_back=1;vid.requestFocus(); 
       vid.start();} 
       break; 

      case R.id.back: 
       if(count_back==0){vid.setVideoPath(urlpath1);count_back=2;count_fw=1;vid.requestFocus(); 
       vid.start();} 
       else if(count_back==1){vid.setVideoPath(urlpath2);count_back--;count_fw=2; 
       vid.requestFocus();vid.start();} 
       else if(count_back==2){vid.setVideoPath(urlpath3);count_back--;count_fw=0; 
       vid.requestFocus();vid.start();} 
       break; 
     } 
} 

@Override 
public void onDestroy(){ 
     vid.stopPlayback(); 
     super.onDestroy(); 

} 

}

+0

我設法使用開關和case語句來弄明白,並重新發布代碼。希望someoane認爲這很有用。謝謝 !!! –

回答

0

試試這個

public class Blue extends Activity { 

ImageButton back; 
ImageButton home; 
ImageButton forward; 
VideoView vid; 
int count_back; 
int count_fw; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_blue); 

    back = (ImageButton) findViewById(R.id.back); 
    home = (ImageButton) findViewById(R.id.home); 
    forward = (ImageButton) findViewById(R.id.forward); 

    vid = (VideoView) findViewById(R.id.videoView1); 

    final Uri uri1 = Uri.parse("android.resource://"+ getPackageName()+"/"+R.raw.blue_01); 
    final Uri uri2 = Uri.parse("android.resource://"+ getPackageName()+"/"+R.raw.blue_02); 
    final Uri uri3 = Uri.parse("android.resource://"+ getPackageName()+"/"+R.raw.blue_03); 

    vid.setVideoURI(uri1); 
    vid.requestFocus(); 
    vid.start(); 
    count_back=2; 
    count_fw=1; 

    home.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      vid.stopPlayback(); 
      Intent i = new Intent(Blue.this,MainActivity.class); 
      startActivity(i); 
     } 
    }); 



    back.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      if(count_back==0){ 
      vid.setVideoURI(uri1); 
      vid.requestFocus(); 
      vid.start(); 
      count_back=2; 
      count_fw=1; 
      } 
      else if(count_back==1){ 
      vid.setVideoURI(uri2); 
      vid.requestFocus(); 
      vid.start(); 
      count_back--; 
      count_fw=2; 
      } 
      else if(count_back==2){ 
      vid.setVideoURI(uri3); 
      vid.requestFocus(); 
      vid.start(); 
      count_back--; 
      count_fw=0; 
      } 


     } 
    }); 



    forward.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      if(count_fw==0){ 
      vid.setVideoURI(uri1); 
      vid.requestFocus(); 
      vid.start(); 
      count_fw++; 
      count_back=2; 
      } 
      else if(count_fw==1){ 
      vid.setVideoURI(uri2); 
      vid.requestFocus(); 
      vid.start(); 
      count_fw++; 
      count_back=0; 
      } 
      else if(count_fw==2){ 
      vid.setVideoURI(uri3); 
      vid.requestFocus(); 
      vid.start(); 
      count_fw=0; 
      count_back=1; 
      } 


     } 
    }); 


} 

    @Override 
    public void onDestroy(){ 
     if (vid != null) 
      vid.stopPlayback(); 
      super.onDestroy(); 

} 

}