2016-12-20 9 views
0

リストビューにはテキストとイメージビューが含まれています。この画像ビューはメディアを再生するためにonClickListener()を実装しています。それは私にとってはうまく動作しますが、リストビューの最後の項目までスクロールすると一時停止ボタンがデフォルトのターン(再生ボタン)に戻り、オーディオファイルが再生を続けます。なぜこれが起こっていますか?おかげでたくさんスクロール中のリストビューの画像ビューの変更

//--------------- Play Button ------------------------------------------------------------------- 
    b.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      //--------------determine the id to play ---------------------------------- 
      idd = items.get(position).getId(); 
      FilteringNums f = new FilteringNums(); 
      f.convert(idd); 
      String attribute = f.r; 
      //------------------------------------------------------------------------- 
       int resourceId = arg0.getResources().getIdentifier(attribute+position, "raw", activity.getPackageName()); 
       final MediaPlayer Mp =MediaPlayer.create(getContext(), resourceId); 
      try{   
       int r = Mp.getCurrentPosition(); 
       Mp.seekTo(r); 
       Mp.start();     

      b.setEnabled(false); 
      b.setVisibility(b.INVISIBLE); 
      pause.setVisibility(pause.VISIBLE); 
    //------------------------------------------------------------------------------------------------ 

      //-------------- Pause Button --------------------------------------------------------- 
      pause.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

        if(Mp.isPlaying()) 
        { 
        Mp.pause(); 
        Log.d("media player", "is paused"); 
        resume.setVisibility(resume.VISIBLE); 
        stop.setVisibility(stop.VISIBLE); 
        } 
       } 
       }); 
+0

あなたはアダプタを使用しているのこの実装?はいの場合は、そのコードを追加してください。 'getView()'メソッドのようなものです。 –

+0

アダプタクラスのViewHolderを使用して、スクロールリスト中に現在のビューを保持します。 – Shane

+0

はい私はViewHolderを使用していますが、まだ問題はあります! –

答えて

0

このviewHolder

static class ViewHolder { 
    public TextView tv_id ; 
    public ImageView b; 
    public ImageView pause; 
    public ImageView resume; 
    public ImageView stop; 
} 

、それ

final ViewHolder holder = new ViewHolder(); 
    holder.tv_id= (TextView) convertView.findViewById(R.id.sora_id); 

    holder.b= (ImageView) convertView.findViewById(R.id.list_item_btn); 
    holder.pause= (ImageView) convertView.findViewById(R.id.pause_item_btn); 
    holder.resume= (ImageView) convertView.findViewById(R.id.resume_item_btn); 
    holder.stop= (ImageView) convertView.findViewById(R.id.stop_item_btn); 
    if (position % 2 == 0) 
     holder.tv_id.setText("سورة"+" "+items.get(position).getSora().toString()); 
    else 
     holder.tv_id.setText(items.get(position).getSora().toString()); 
    holder.tv_id.setTextColor(colors2[colorPos2]); 
    holder.tv_id.setTypeface(null, Typeface.BOLD); 
    holder.b.setBackgroundResource(R.drawable.speaker); 
    holder.pause.setBackgroundResource(R.drawable.pause); 
    holder.resume.setBackgroundResource(R.drawable.play); 
    holder.stop.setBackgroundResource(R.drawable.stop); 
関連する問題