Откройте одно и то же действие с помощью videoView, с разными видео, связанными с каждой кнопкой - PullRequest
1 голос
/ 08 мая 2020

Я создал Activity c с srollBar, в котором есть 16 блоков (включая теги), и на каждом blo c у меня есть кнопка, которая переходит к тому же действию. В этом есть videoView. Я хочу, чтобы все кнопки были связаны с одним и тем же действием, но videoView читает другое видео. Является ли это возможным ? Помогите мне, пожалуйста, я почти закончил с приложением и не могу найти решение ахах!

screenshot

Вот мой код для одного blo c дюйм java:

frameLayoutPose = findViewById( R.id.updog_bloc );
customImageView = frameLayoutPose.findViewById( R.id.pose_img );
customImageView.setImageResource( R.drawable.urdhva );
poseSubtitle = frameLayoutPose.findViewById( R.id.pose_subtitle );
poseSubtitle.setText( "URDHVA MUKHA SVANASANA & BHUJAGASANA" );
poseTitle = frameLayoutPose.findViewById( R.id.pose_title );
poseTitle.setText( "Chien tête en haut & cobra" );
poseButton = frameLayoutPose.findViewById(R.id.pose_button);
poseButton.setOnClickListener( new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.home_animation_android);
        Log.i( "OC_RSS", "You made it !" );
        Intent myIntent = new Intent( PosesActivity.this, VideoActivity.class );
        startActivity( myIntent );
    }
} );

СПАСИБО

Ответы [ 2 ]

1 голос
/ 08 мая 2020

В своей деятельности установите OnClickListener для каждой имеющейся у вас кнопки: поместите URL-адрес видео в свое намерение (например, пакет, который вы отправляете кому-то с дополнительной подарочной картой внутри)

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bundle bundle = new Bundle();
                Intent intent = new Intent(CurrentActivity.this, DestinationActivity.class);
                intent.putExtra("URL", "https://google.com");
                startActivity(intent);
            }
        });

В целевом действии получить этот URL-адрес из намерения, которое запустило Activity (onCreate () - хорошее место):

String videoUrl = getIntent().getExtras().getString("URL");
if (videoUrl != null) {
    //Load video
}

[Необязательно] Более чистый подход - переопределить View.OnClickListener для вашей активности и:

@Override
    public void onClick(View v) {
        String url = null
        switch (v.getId()) {
            case R.id.button_1:
                url = "https://google.com";
                break;
            case R.id.button_2:
                url = "https://medium.com";
                break;
        }

        if (url != null) {
            Intent intent = new Intent(CurrentActivity.this, DestinationActivity.class);
            intent.putExtra("URL", url);
            startActivity(intent);
        }
    }
0 голосов
/ 08 мая 2020

Братан, как я вижу из вашего кода, вы жестко запрограммировали URI видео, поэтому одно и то же видео отображается при каждом нажатии кнопки, если вы хотите отображать другое видео для разных нажатий кнопок, тогда вам необходимо сопоставить URI видео соответственно, что тихо просто.

...