Попробуйте следующее: (Идея в том, чтобы добавить onClickListener () для каждого из представлений каждого элемента в списке - когда пользователь нажимает на что-либо, кроме imageView, запускает видео, иначе загружает видео. Этот код не тестируетсяЕсли во время тестирования вы столкнулись с проблемой, просто напишите комментарий ниже).
1) MnnnnnnnActivity.class: -------------
public class MnnnnnnnActivity extends AppCompatActivity implements ListItemListener {
private ListView lv;
private CustomAdapter customAdapter;
private String[] androidnames;
private String[] titre;
private Bitmap[] bitmaps;
private String[] url;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout6);
//populate arrays (androidnames, titre , bitmaps , url);
lv = (ListView) findViewById(R.id.lv);
customAdapter = new CustomAdapter(getApplicationContext() , androidnames , titre , bitmaps , url , MnnnnnnnActivity.this);
lv.setAdapter(customAdapter);
}
@Override
public void Launch_Video(int position) {
}
@Override
public void Download_Video(int position) {
}
}
2) CustomAdapter.class: -------
public class CustomAdapter extends ArrayAdapter<String> {
private String[] androidosnames;
private String[] titre;
private String[] url;
private Bitmap[] bitmaps;
private Context context;
private ListItemListener callback;
public CustomAdapter(Context context, String[] androidosnames, String[] titre, Bitmap[] bitmaps, String[] url , ListItemListener l) {
super(context, R.layout.list_view_item, androidosnames);
this.context = context;
this.url = url;
this.titre = titre;
this.bitmaps = bitmaps;
this.androidosnames = androidosnames;
if(l != null){
callback = l;
}
}
@NonNull
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(context);
convertView = inflater.inflate(R.layout.list_view_item, null);
holder = new ViewHolder();
holder.androidos = (TextView) convertView.findViewById(R.id.tvandroidosnames);
holder.androidos.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(callback != null){
callback.Launch_Video(position);
}
}
});
holder.textView = (TextView)convertView.findViewById(R.id.url);
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(callback != null){
callback.Launch_Video(position);
}
}
});
holder.titresong = (TextView) convertView.findViewById(R.id.titre);
holder.titresong.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(callback != null){
callback.Launch_Video(position);
}
}
});
holder.image = (ImageView) convertView.findViewById(R.id.imgvw);
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(callback != null){
callback.Download_Video(position);
}
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.androidos.setText(androidosnames[position]);
holder.titresong.setText(titre[position]);
holder.textView.setText(url[position]);
holder.textView.setVisibility(View.INVISIBLE);
holder.textView.setSelected(true);
holder.androidos.setSelected(true);
holder.image.setImageBitmap(Bitmap.createScaledBitmap(bitmaps[position], 100, 100, false));
return convertView;
}
private class ViewHolder {
TextView androidos;
TextView textView;
TextView titresong;
ImageView image;
}
}
3) Интерфейс ListItemListener: ----------
public interface ListItemListener {
public void Launch_Video(int position);
public void Download_Video(int position);
}
4) layout6.xml: --------
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv">
</ListView>
</android.support.constraint.ConstraintLayout>
5) list_view_item.xml совпадает с list_item.