0

Мне нужна помощь в этой проблеме, у меня есть список с строкой, содержащей изображение воспроизведения/остановки и textView, если я нажимаю звук воспроизведения воспроизводимого изображения и меняю значок, чтобы остановить изображение и инвертировать если я нажимаю на строку, делаю то же самое, но проблема в том, что когда я нажимаю строку, изменение изображения в порядке, но если нажать на изображение самого следующего ряда, измените изображение в выбранной строке, но не инвертируйте изображение строки, выбранной перед, я хочу обратить на каждой мыши по изображению везде, где списке следует нажать (я строка или изображение)Кнопка воспроизведения/остановки в строке в спискеView

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; 
} 

enter image description here

enter image description here

+0

Вы можете публиковать код, который используется для этого поведения? –

+0

перед тем, как нажать каждую строку, сообщите об этом адаптеру, что набор данных изменился следующим образом: notifyDataSetChanged(): – santoXme

+0

Можете ли вы показать свой код –

ответ

0

изменения ожидается Попробуйте это и попытаться настроить в соответствии с вашими требованиями. У меня есть 5 элементов в списке. и listView.setOnItemClickListener работает хорошо. Он меняет единственное положение, на которое вы нажимаете и отдыхаете, будет автоматически обновляться. Я не могу сделать дальше.

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long l) { 
      View v; 
      int count =5; //parent.getChildCount(); 
      v = parent.getChildAt(position); 
      parent.requestChildFocus(v, view); 
      ImageView imageView = (ImageView) v.findViewById(R.id.buttonPlayPause); 
      imageView.setImageResource(android.R.drawable.ic_media_pause); 
      int i=0; 
      while (i < count) { 
       if (i != position) { 
        v = parent.getChildAt(i); 
        ImageView imageView1 = (ImageView) v.findViewById(R.id.buttonPlayPause); 
        imageView1.setImageResource(android.R.drawable.ic_media_play); 

       } 
       i++; 
      } 

     } 
    });