J'ai besoin d'aide dans ce problème, j'ai listview avec ligne contenant play/stop image et textView, si j'appuie sur le jeu jouer image son et changer l'icône pour arrêter l'image et inverser et si j'appuie sur la ligne elle-même faire les mêmes choses mais le problème est quand j'appuie sur la ligne l'image change c'est ok mais si j'appuie sur l'image elle-même de la rangée suivante change l'image dans la rangée sélectionnée mais n'inverse pas l'image je veux inverser à chaque clic sur l'image listview où je presse (ligne ou de l'image)Lecture/Arrêt Bouton dans la rangée à la listeVoir
enter code here azkar = (ListView) findViewById(R.id.add_playlist_listView);
adapter = new SoundsAdapter(this, playlists,azkar);
adapter.setCustomButtonListner(SoundsActivity.this);
azkar.setAdapter(adapter);
int lastPosition =-1;
azkar.setOnItemClickListener(new AdapterView.OnItemClickListener() {
int pos;
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
adapter.getView(position, view, parent);
try {
if (lastPosition != -1) {
View lastRow = azkar.getChildAt(lastPosition);
ImageView play = (ImageView) lastRow.findViewById(R.id.is_added);
play.setImageResource(R.drawable.play_background);
View currentRow = azkar.getChildAt(position);
ImageView stop = (ImageView) currentRow.findViewById(R.id.is_added);
stop.setImageResource(R.drawable.stop_background);
}
lastPosition = position;
} catch (Exception e) {
}
final HashMap<String, String> committee = playlists.get(position);
String fileName = committee.get(CategoriesActivity.KEY_PATH);
run(committee.get(CategoriesActivity.KEY_PATH), view, position);
}
});
enter code here
@Override
public void onButtonClickListner(int position,View view,ViewGroup parent) {
Toast.makeText(getApplicationContext(), "aaaaaaa", Toast.LENGTH_LONG).show();
final int pos = position;
adapter.getView(position, view, parent);
try {
if (last != -1) {
View currentRow = azkar.getChildAt(position);
ImageView stop = (ImageView) currentRow.findViewById(R.id.is_added);
stop.setImageResource(R.drawable.stop_background);
View lastRow = azkar.getChildAt(last);
ImageView play = (ImageView) lastRow.findViewById(R.id.is_added);
play.setImageResource(R.drawable.play_background);
} else {
View currentRow = azkar.getChildAt(position);
ImageView stop = (ImageView) currentRow.findViewById(R.id.is_added);
stop.setImageResource(R.drawable.stop_background);
}
last = position;
}catch (Exception e){}
final HashMap<String, String> committee = playlists.get(position);
String fileName = committee.get(CategoriesActivity.KEY_PATH);
run(fileName, view, position);
}
enter code here //code in adapter
thumb_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (customListner != null) {
customListner.onButtonClickListner(position, convertView, parent);
}
}
});
return vi;
}
public interface customButtonListener {
public void onButtonClickListner(int position,View view,ViewGroup parent);
}
public void setCustomButtonListner(customButtonListener listener) {
this.customListner = listener;
}
Pouvez-vous poster le code que vous utilisez pour ce problème? –
avant d'appuyer sur chaque ligne notifier l'adaptateur que l'ensemble de données a changé comme ceci: notifyDataSetChanged(): – santoXme
Pouvez-vous s'il vous plaît montrer votre code –