アンドロイドスタジオにて動画再生アプリを作成中です。
Main.Activity にてリストとチェックボックスから選択した項目により、再生する動画を変えます。
以下のコードを動作させると、チェックボックスのチェックの有無により処理を分岐する isChecked メソッド内の、if内の動画がループしてしまいます。
本来なら、isCheckd → isChecked2 → isChecked3 とチェックを進めていきたいのですが、例えばisCheckedのチェックボックスにチェックを入れると、if(isChecked)メソッド内の動画v_4がループして先に進まなくなってしまいます。
ループしないようにするアドバイスがいただけましたら幸いです。初心者のためレベルの低い質問で恐縮ですが、どうぞよろしくお願いいたします。
java
コード
package
1 2import androidx.appcompat.app.AppCompatActivity; 3 4import android.content.Intent; 5import android.media.MediaPlayer; 6import android.net.Uri; 7import android.os.Bundle; 8import android.widget.VideoView; 9 10public class TEST extends AppCompatActivity { 11 12 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_test); 17 18 Intent intent = getIntent(); 19 int ListTitle = intent.getIntExtra("ListTitle", 0); 20 int position = intent.getIntExtra("position",0); 21 isChecked a = new isChecked(); 22 23 switch (ListTitle) { 24 25 case 1: 26 switch (position) { 27 case 0: 28 a.start_0(); 29 a.isChecked(); 30 break; 31 case 1: 32 a.start_1(); 33 a.isChecked(); 34 break; 35 case 2: 36 a.start_2(); 37 a.isChecked(); 38 break; 39 } 40 } 41 42 private class isChecked{ 43 Intent intent = getIntent(); 44 boolean isChecked = intent.getBooleanExtra("isChecked", false); 45 boolean isChecked2 = intent.getBooleanExtra("isChecked2", false); 46 boolean isChecked3 = intent.getBooleanExtra("isChecked3", false); 47 48 VideoView v = (VideoView)findViewById(R.id.v2); 49 50 private void start_0(){ 51 v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v_0)); 52 v.start(); 53 } 54 55 private void start_1(){ 56 v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v_1)); 57 v.start(); 58 } 59 60 private void start_2(){ 61 v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v_2)); 62 v.start(); 63 } 64 65 66 private void isChecked() { 67 if (isChecked) { 68 v.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 69 @Override 70 public void onCompletion(MediaPlayer mp) { 71 v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v_4)); 72 v.start(); 73 } 74 }); 75 } 76 77 if (isChecked2) { 78 v.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 79 @Override 80 public void onCompletion(MediaPlayer mp) { 81 v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v_5)); 82 v.start(); 83 } 84 }); 85 } 86 87 if (isChecked3) { 88 v.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 89 @Override 90 public void onCompletion(MediaPlayer mp) { 91 v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v_6)); 92 v.start(); 93 } 94 }); 95 } 96 } 97 } 98}

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/06/21 11:16
2022/06/21 11:58 編集
2022/06/21 12:26