java - 我怎样才能使这段代码更有效率?

标签 java android arrays imagebutton android-videoview

我正在制作一个 Android 应用程序,基本上只需按一下按钮即可播放网站上的视频。正如你可以通过下面的代码看到的,我有 8 个不同的按钮,可以播放 8 个不同的视频。我是编程新手,这一切都很好,但我知道这不是最好的编写方式。

有没有一种方法可以用更少的代码行完成同样的事情?

package biz.slwdesign.tvlocallysouthdevon;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.MediaController;
import android.widget.VideoView;

public class Watch extends Activity implements OnClickListener {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
        setContentView(R.layout.watch); 

        //ImageButton1
        ImageButton video1 = (ImageButton) findViewById(R.id.ImageButton1);
        video1.setOnClickListener(this);

        //ImageButton2
        ImageButton video2 = (ImageButton) findViewById(R.id.ImageButton2);
        video2.setOnClickListener(this);

        //ImageButton3
        ImageButton video3 = (ImageButton) findViewById(R.id.ImageButton3);
        video3.setOnClickListener(this);

        //ImageButton4
        ImageButton video4 = (ImageButton) findViewById(R.id.ImageButton4);
        video4.setOnClickListener(this);

        //ImageButton5
        ImageButton video5 = (ImageButton) findViewById(R.id.ImageButton5);
        video5.setOnClickListener(this);

        //ImageButton6
        ImageButton video6 = (ImageButton) findViewById(R.id.ImageButton6);
        video6.setOnClickListener(this);

        //ImageButton7
        ImageButton video7 = (ImageButton) findViewById(R.id.ImageButton7);
        video7.setOnClickListener(this);

        //ImageButton7
        ImageButton video8 = (ImageButton) findViewById(R.id.ImageButton8);
        video8.setOnClickListener(this);

    }

    public void onClick(View v) {

        if(v.getId() == R.id.ImageButton1){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/austins.mp4");
            videoview1.start();
            videoview1.requestFocus();
            videoview1.setOnCompletionListener(new OnCompletionListener() {           
                public void onCompletion(MediaPlayer videoview) {
                }
            });
        }
        if (v.getId() == R.id.ImageButton2){ 
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/brownsWigs.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
        if (v.getId() == R.id.ImageButton3){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/frames&Boxes.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
        if (v.getId() == R.id.ImageButton4){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/hatMckool.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
        if(v.getId() == R.id.ImageButton5){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/gardenTime.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
        if (v.getId() == R.id.ImageButton6){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/paulBarclay.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
        if (v.getId() == R.id.ImageButton7){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/fishShed.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
        if(v.getId() == R.id.ImageButton8){
            setContentView(R.layout.watch);
            VideoView videoview1 = (VideoView) findViewById(R.id.videoView1);
            videoview1.setMediaController(new MediaController(this));
            videoview1.setVideoPath("http://slwdesign.biz/android/offBoutique.mp4");
            videoview1.start();
            videoview1.requestFocus();
        }
    }
}

最佳答案

在 xml 文件中,设置此属性 android:onClick="onClick"而不是初始化 ImageButton 实例

关于java - 我怎样才能使这段代码更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10025905/

相关文章:

java - 无法避免覆盖文本文件上的所有内容

java - 从子数组创建列表而不在java中复制

java - 如何在 Hudson 中构建 Eclipse 动态 Web 项目

android - 关于ANDROID_SDK_HOME的Android Studio 2.0 SDK验证警告?

Android Workmanager 与 Kotlin 协程

java - Android:同时从加速度计和陀螺仪获取数据

java - 用 1 行代码实例化和初始化对象数组

java - 在 Android Studio 中包含 Java 模块作为依赖项时出现错误的 Java 编译器

arrays - VBA Redim 保留

javascript - Angular : How to convert values in array and get value in outside scope?