2016-12-23 14 views
0

に確認してください。もう一度next nextを押すとチェックされます。私はそれほど長い間こだわっています。ありがとうございました。チェックボックスは、私が最初にチェックボックスがチェックされているチェックボックスのリストビューを持っているし、次のユーザーがボタンをクリックするが、次のチェックボックスがチェックされている第二行のチェックがある場合はフッターに、私は次のボタンがあり、ボタンをクリックして

public class PlanetArrayAdapter extends ArrayAdapter<Planet> { 

    private LayoutInflater inflater; 
    ArrayList<Boolean> positionArray; 
    Context ctx; 

    public PlanetArrayAdapter(Context context, List<Planet> planetList) { 
     super(context, R.layout.list_rowss, R.id.rowTextView, planetList); 
     // Cache the LayoutInflate to avoid asking for a new one each time. 
     inflater = LayoutInflater.from(context) ; 
     positionArray = new ArrayList<Boolean>(planetList.size()); 
     for(int i =0;i<planetList.size();i++){ 
      positionArray.add(false); 
     } 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     position_new =position; 
     Planet planet = (Planet) this.getItem(position_new);  
     final CheckBox checkBox ; 
     final TextView textView,textview_duration_MAX, textview_duration_Current; 
     final CheckBox pauseplay; ; 

     final ImageView download,fb,twitter,add; 
     final SeekBar pb; 

     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.list_rowss, null); 


      textView = (TextView) convertView.findViewById(R.id.rowTextView); 

      checkBox = (CheckBox) convertView.findViewById(R.id.CheckBox01); 
      pb = (SeekBar) convertView.findViewById(R.id.songProgressBar); 
      pauseplay = (CheckBox)convertView.findViewById(R.id.button); 
      textview_duration_MAX = (TextView)convertView.findViewById(R.id.textView3); 
      textview_duration_Current =(TextView)convertView.findViewById(R.id.textView2); 
      download = (ImageView) convertView.findViewById(R.id.imageView); 
      fb = (ImageView) convertView.findViewById(R.id.imageView4); 
      twitter = (ImageView) convertView.findViewById(R.id.imageView5); 
      add = (ImageView) convertView.findViewById(R.id.imageView6); 

      checkBox.setTag(position); 

      // Optimization: Tag the row with it's child views, so we don't have to 
      // call findViewById() later when we reuse the row. 
      convertView.setTag(new PlanetViewHolder(textView,textview_duration_MAX,textview_duration_Current,checkBox,pb,pauseplay,add)); 



      checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

        Planet palnts = (Planet) buttonView.getTag(); 


        Log.d("poiuy",palnts+"");//For getting checkbox postion 


        CheckBox cb = (CheckBox) buttonView; 

        Planet planet = (Planet) cb.getTag(); 
        planet.setChecked(cb.isChecked()); 

        boolean isStart; 

        if (checkBox.isChecked()) { 


         if (selected != null) { 
          selected.setChecked(false); 
         } 

         checkBox.setChecked(true); 
         selected = checkBox; 

         pauseplay.setVisibility(View.VISIBLE); 
         song_namef.setText(planet.getName().substring(18)); 
         playButton.setImageResource(R.drawable.pausef); 

         View parentRow = (View) buttonView.getParent(); 
         ListView listView = (ListView) parentRow.getParent(); 
         positiono = listView.getPositionForView(parentRow); 
         mPlayingPosition = positiono; 

         final Runnable mUpdateTime = new Runnable() { 
          public void run() { 
           int currentDuration; 
           int totalduration; 
           if (mPlayer.isPlaying()) { 
            currentDuration = mPlayer.getCurrentPosition(); 
            totalduration = mPlayer.getDuration(); 
            textview_duration_MAX.setText("" + milliSecondsToTimer((long) totalduration)); 
            textview_duration_Current.setText("" + milliSecondsToTimer((long) currentDuration)); 
            textview_duration_Current.postDelayed(this, 1000); 
           } else { 
            textview_duration_Current.removeCallbacks(this); 
           } 
          } 
         }; 

         isStart = false; 
         // Toast.makeText(getContext(), "Play", Toast.LENGTH_SHORT).show(); 
         Toast.makeText(getContext(),"positiono"+positiono,Toast.LENGTH_SHORT).show(); 
         Log.d("OnlyPosssssd", String.valueOf(mPlayingPosition)); 


         try { 
          mPlayer.reset(); 
          mPlayer.setDataSource(String.valueOf(planet = listAdapter.getItem(mPlayingPosition))); 

          mPlayer.prepare(); 
          mPlayer.start(); 
          mPlayingPosition = positiono; 
          // Log.d("OnlyPos", String.valueOf(mPlayingPosition)); 


          pb.setProgress(0); 
          pb.setMax(100); 


          seekbarf.setMax(mPlayer.getDuration()); 

          updatePosition(); 

          isStarted = true; 
          mHandler.postDelayed(mProgressUpdater, 500); 

         } catch (IOException e) { 

          e.printStackTrace(); 

         } 
        );} 


      next.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Toast.makeText(getContext(),"Next",Toast.LENGTH_SHORT).show(); 
        itemPosition = itemPosition+1; 
        next(itemPosition); 
        playSong(itemPosition); 
        if (view != null) { 
         CheckBox checkBox = (CheckBox)view.findViewById(R.id.CheckBox01); 
         checkBox.setChecked(!checkBox.isChecked()); 

        } 
       } 
      }); 

    public void next(int next){ 

    Toast.makeText(getContext(),"Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG).show(); 
next, Toast.LENGTH_SHORT).show(); 

    parents.getChildAt(next).setBackground(getContext().getDrawable(R.drawable.backpause)); 

    if (save != -1 && save != next){ 
     parents.getChildAt(save).setBackgroundColor(Color.TRANSPARENT);  
    } 
    save = next; 

} 
+0

コードを掲載することはできますか? –

+0

お手伝いしますが、あなたはまだ何をしているのか、何が問題なのかを示す必要があります:) –

+0

コードなし??? – Piyush

答えて

0

あなたの惑星クラスですでにメソッドをsetCheckedてきたように、最高のあなたは、最後のトラックがインデックスをクリックし、すべてのボタンの横にそれをインクリメントクリックし続けることになります。次に、そのインデックスのアイテムのリストから惑星アイテムを取得し、getChecked()の結果に基づいてsetChecked(true)またはfalseを呼び出してから、adapter.notifydatasetchangedを呼び出します。

+0

あなたが(itemPosition)次のメソッドを定義しているいくつかのコード –

+0

とヘルプを@Rajenしてください;? –

+0

を返します。 –

関連する問題