Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在ListView的每个元素中放置视频?_Java_Android - Fatal编程技术网

Java 如何在ListView的每个元素中放置视频?

Java 如何在ListView的每个元素中放置视频?,java,android,Java,Android,我有一个列表视图,它由带有照片和文本的列表项组成 我希望当我点击列表视图的每个元素时,会出现不同的视频。 目前我只能播放一个视频,第一个视频是我在条件开关中输入的 如何将每个视频关联到listview位置 我给你密码 主要活动: public class MainActivity extends AppCompatActivity { AdRequest adRequest; private int clicks = 0; public ArrayList<Crash&g

我有一个列表视图,它由带有照片和文本的列表项组成 我希望当我点击列表视图的每个元素时,会出现不同的视频。 目前我只能播放一个视频,第一个视频是我在条件开关中输入的

如何将每个视频关联到listview位置

我给你密码

主要活动:

public class MainActivity extends AppCompatActivity {
   AdRequest adRequest;
   private int clicks = 0;
   public ArrayList<Crash> crash;
   public ListView listView;
   private AdView mAdView;
   public InterstitialAd mInterstitialAd;
   Video video = new video();

   class List implements OnItemClickListener {

       List() {}

       public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
           Intent intent = new Intent(MainActivity.this, Video.class);
           intent.putExtra("CRASH1", ((Crashes) MainActivity.this.crash.get(i)).getName());
           MainActivity.this.startActivity(intent);
       }
   }

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView( R.layout.activity_main);

        setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
        ((TextView) findViewById(R.id.title)).setTypeface(Typeface.createFromAsset(getAssets(), “typeoffont”));
        this.mInterstitialAd = new InterstitialAd(this);
        this.mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        this.mInterstitialAd.loadAd(new Builder().build());
        this.listView = (ListView) findViewById(R.id.crash_list);
        this.crash = new ArrayList();

        listItem();

        this.listView.setAdapter(new CrashAdapter(this, this.crash));
        this.listView.setOnItemClickListener(new List());
        MobileAds.initialize(this, "");
        this.mAdView = (AdView) findViewById(R.id.example);
        this.mAdView.loadAd(new Builder().build());
    }

    public void listItem() {
        this.crash.add(new Crash(“Whatever”, “12412341212342”, “Hi1”));
        this.crash.add(new Crash(“Why”, “123123123“, “Hi2”));
        this.crash.add(new Crash(“What”, "5b3358d1bbe87a4fd56aac4b", “Hi3”));
    }
}

您能帮助我吗?

尝试在适配器类的getView()中添加以下代码:

public class Video extends AppCompatActivity {
    public VideoView videoView;

    int i = 0;

    class OnPrepared implements OnPreparedListener {
        OnPrepared() {}

        public void onPrepared(MediaPlayer mediaPlayer) {
            mediaPlayer.setLooping(true);
        }
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.video_menu, menu);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() == R.id.cancel) {
            finish();
        }
        return true;
    }

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_video);
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        getWindow().setLayout((int) (((double) metrics.widthPixels) * 0.7d), (int) (((double) metrics.heightPixels) * 0.5d));
        Bundle extras = getIntent().getExtras();

        videoView = findViewById(R.id.videoview);
        videoView.setVideoURI(Uri.parse(“CRASH1”));
        setVideo();
        videoView.start();

        videoView.setOnPreparedListener(new OnPrepared());
    }

    public void setVideo () {
        switch (i) {
            case 0:
                videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.crone));
                i++;
                break;

            case 1:
                videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.crtwo);
                break;

            case 2:
                videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.crthree));
                break;
        }
        videoView.setMediaController(new MediaController(Video.this));
        videoView.requestFocus();
        videoView.start();
    }
}
view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                // Do what you want here when item is clicked
                Intent intent = new Intent(view.getContext(), Video.class);
                intent.putExtra("CRASH1", crash.getName());
                 view.getContext().startActivity(intent);
                }
            });

我不确定onClick()中的代码是否无错误,但这是一般概念。请让我知道它是否适合您。

否,android studio给我以下错误:字符串无法转换为Crashes@Outlandish他的onClick代码也可以工作,因为listview有一个itemClickListener。因此,无需添加click-in适配器类
view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                // Do what you want here when item is clicked
                Intent intent = new Intent(view.getContext(), Video.class);
                intent.putExtra("CRASH1", crash.getName());
                 view.getContext().startActivity(intent);
                }
            });