Last active
December 30, 2015 00:28
-
-
Save devloe/7749279 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
videoAdapter = new VideoAdapter(this, videoItems); | |
listView.setAdapter(videoAdapter); | |
listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { | |
@Override | |
public void onItemClick(AdapterView<?> av, View v, int position, | |
long id) { | |
VideoModel data = (VideoModel) listView.getItemAtPosition(position); | |
data.start = true; | |
videoAdapter.notifyDataSetChanged(); | |
//VideoLayout view = (VideoLayout) listView.getChildAt(position - listView.getFirstVisiblePosition()); | |
//view.start(data); | |
} | |
}); | |
new getVideosTask().execute(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class VideoAdapter extends BaseAdapter{ | |
private Context context; | |
private ArrayList<VideoModel> items; | |
public VideoAdapter(Context c, ArrayList<VideoModel> items) { | |
context = c; | |
setItems(items); | |
} | |
@Override | |
public int getCount() { | |
return items.size(); | |
} | |
@Override | |
public Object getItem(int position) { | |
return items.get(position); | |
} | |
@Override | |
public long getItemId(int position) { | |
return 0; | |
} | |
static class ViewHolder{ | |
public MyImageView imageView; | |
public MyVideoView videoView; | |
public TextView titleView; | |
public ViewHolder(View row) { | |
imageView = (MyImageView) row.findViewById(R.id.placeholder); | |
videoView = (MyVideoView) row.findViewById(R.id.video); | |
titleView = (TextView) row.findViewById(R.id.title); | |
} | |
} | |
@TargetApi(Build.VERSION_CODES.JELLY_BEAN) | |
public View getView(final int position, View convertView, ViewGroup parent) | |
{ | |
final ViewHolder viewHolder; | |
View row = convertView; | |
if (row == null) { | |
LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); | |
row = li.inflate(R.layout.video, parent, false); | |
viewHolder = new ViewHolder(row); | |
row.setTag(viewHolder); | |
} else { | |
viewHolder = (ViewHolder) row.getTag(); | |
} | |
VideoModel item = items.get(position); | |
viewHolder.titleView.setText(item.title); | |
viewHolder.titleView.bringToFront(); | |
viewHolder.titleView.setShadowLayer(15, 0, 0, Color.argb(200, 0, 0, 0)); | |
viewHolder.titleView.setBackground(new GradientDrawable( | |
GradientDrawable.Orientation.TOP_BOTTOM, | |
new int[]{Color.argb(200, 0, 0, 0), Color.argb(0, 0, 0, 0)} | |
)); | |
viewHolder.imageView.setImageUrl(item.imageUrl); | |
if(item.start){ | |
item.start = false; | |
viewHolder.titleView.setText("Cargando..."); | |
viewHolder.videoView.setVideoURI(Uri.parse(item.videoUrl.replace(".mp4", ".webm"))); | |
viewHolder.videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { | |
@Override | |
public void onPrepared(MediaPlayer mp) { | |
viewHolder.videoView.bringToFront(); | |
} | |
}); | |
viewHolder.videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { | |
@Override | |
public void onCompletion(MediaPlayer mp) { | |
viewHolder.videoView.stopPlayback(); | |
viewHolder.titleView.bringToFront(); | |
} | |
}); | |
viewHolder.videoView.start(); | |
} | |
return row; | |
} | |
public ArrayList<VideoModel> getItems() { | |
return items; | |
} | |
public void setItems(ArrayList<VideoModel> items) { | |
this.items = items; | |
} | |
} |
Not working. If I click on the first row, the third row gets clcked too!
This is driving me crazy and I dont understand why this is happening.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
public View getView(final int position, View convertView, ViewGroup parent)
{
final ViewHolder viewHolder;
View row = convertView;
....
.....
viewHolder.myLayout.setOnClickListener (.....);
/** Everything what you want to perform within new Listener **/
}