Android 使用ArrayAdapter、OnClick事件的自定义ListView
我有一个使用Arrayadapter的自定义ListView,其中有一部分视图用于处理onClick事件。我在下面的代码中设置了它。当用户单击视图时,它将调出一个youtube视频。我需要知道的是如何为每个单独的视图点击播放不同的视频。这是我的密码Android 使用ArrayAdapter、OnClick事件的自定义ListView,android,android-listview,Android,Android Listview,我有一个使用Arrayadapter的自定义ListView,其中有一部分视图用于处理onClick事件。我在下面的代码中设置了它。当用户单击视图时,它将调出一个youtube视频。我需要知道的是如何为每个单独的视图点击播放不同的视频。这是我的密码 public class CustomList extends ArrayAdapter<RowItem> { Context context; private static final String[] videoId = {"-U
public class CustomList extends ArrayAdapter<RowItem> {
Context context;
private static final String[] videoId = {"-Uwjt32NvVA", "J7-8IteUvt8", "XjwZAa2EjKA",};
public CustomList(Context context, int resourceId,
List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
}
/*private view holder class*/
private class ViewHolder {
// ImageView imageView;
TextView txtTitle;
TextView txtCareer;
TextView txtSeason;
TextView txtGame;
RelativeLayout highlight;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
RowItem rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
holder.txtCareer = (TextView) convertView.findViewById(R.id.career);
holder.txtSeason = (TextView) convertView.findViewById(R.id.season);
holder.txtGame = (TextView) convertView.findViewById(R.id.game);
holder.highlight = (RelativeLayout) convertView.findViewById(R.id.highlight);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtTitle.setText(rowItem.getTitle());
holder.txtCareer.setText(rowItem.getCareer());
holder.txtSeason.setText(rowItem.getSeason());
holder.txtGame.setText(rowItem.getGame());
//holder.imageView.setImageResource(rowItem.geturl());
holder.highlight .setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:"+videoId));
intent.putExtra("VIDEO_ID", videoId);
context.startActivity(intent);
}
});
return convertView;
}
}
公共类CustomList扩展了ArrayAdapter{
语境;
私有静态最终字符串[]videoId={“-Uwjt32NvVA”,“J7-8IteUvt8”,“XjwZAa2EjKA”,};
公共自定义列表(上下文,int-resourceId,
(列表项目){
超级(上下文、资源ID、项目);
this.context=上下文;
}
/*私有视图持有者类*/
私有类视窗持有者{
//图像视图图像视图;
TextView-txtTitle;
TextView txtCareer;
TextView txtSeason;
文本视图TXT游戏;
相对突出;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
RowItem RowItem=getItem(位置);
LayoutInflater mInflater=(LayoutInflater)上下文
.getSystemService(活动.布局\充气机\服务);
if(convertView==null){
convertView=mInflater.充气(R.layout.list_行,空);
holder=新的ViewHolder();
holder.txtTitle=(TextView)convertView.findViewById(R.id.title);
holder.txtCareer=(TextView)convertView.findViewById(R.id.career);
holder.txtSeason=(TextView)convertView.findViewById(R.id.season);
holder.txtGame=(TextView)convertView.findViewById(R.id.game);
holder.highlight=(RelativeLayout)convertView.findViewById(R.id.highlight);
convertView.setTag(支架);
}否则
holder=(ViewHolder)convertView.getTag();
holder.txtitle.setText(rowItem.getTitle());
holder.txtCareer.setText(rowItem.getCareer());
holder.txtSeason.setText(rowItem.getSeason());
holder.txtGame.setText(rowItem.getGame());
//holder.imageView.setImageResource(rowItem.geturl());
holder.highlight.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
Intent Intent=新的Intent(Intent.ACTION_视图,Uri.parse(“vnd.youtube:+videoId”);
intent.putExtra(“视频ID”,videoId);
背景。开始触觉(意图);
}
});
返回视图;
}
}
当用户在列表中选择不同的视图时,我不知道如何播放不同的视频。Dang太简单了。非常感谢,这工作做得很好!
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:"+videoId[position]));
intent.putExtra("VIDEO_ID", videoId[position]);
context.startActivity(intent);
ss=(String) ((TextView) view).getText();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:"+ss));
context.startActivity(intent);