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