2014-12-05 12 views
0

동적으로 탐색 바를 팽창시키고 있지만 첫 번째 탐색 바를 누르면 마지막 탐색 바에서만 값이 변경됩니다.동적으로 탐색 바를 작성하지만 올바르게 작동하지 않습니다.

for (int i = 0; i < controlList.size(); i++) { 
      view1 = seekbar_inflate.inflate(R.layout.mysxm_control_coloumn, null, false); 
      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT, 
        LinearLayout.LayoutParams.WRAP_CONTENT); 
      FrameLayout frame = (FrameLayout) view1 
        .findViewById(R.id.sliderLayout); 
      vertical_seekbar=new VerticalSeekBar(MyApplication.getAppContext()); 
      vertical_seekbar.setId(i); 
      final int id = vertical_seekbar.getId(); 
      vertical_seekbar.setProgressDrawable(getResources().getDrawable(R.drawable.sxm_selector_column)); 
      frame.addView(vertical_seekbar, params); 
      vertical_seekbar=(VerticalSeekBar)view1.findViewById(id); 
      equalizer_view.addView(view1); 
      vertical_seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

       @Override 
       public void onProgressChanged(SeekBar seekBar, 
         int progress, boolean arg2) { 


       } 

       @Override 
       public void onStartTrackingTouch(SeekBar seekBar) { 

       } 

       @Override 
       public void onStopTrackingTouch(SeekBar seekBar) { 


       } 
      }); 
     } 

각 검색 바에 대한 수신기를 제공하는 방법은 무엇입니까? pls 대답을 제안

답변

1

그냥 약간의 수정은 나를 위해 이것을 solution.Still이 vertical_seekbar 및 vertical_seekbar1 같은 SeekBar를 변수를 차별화 할 수이 코드 only.In ID를 기반으로 워킹 솔루션은 나를 위해 매우 이상합니다.

for (int i = 0; i < controlList.size(); i++) { 
       view1 = seekbar_inflate.inflate(R.layout.mysxm_control_coloumn, null, false); 
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.MATCH_PARENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT); 
       FrameLayout frame = (FrameLayout) view1 
         .findViewById(R.id.sliderLayout); 
       vertical_seekbar=new VerticalSeekBar(MyApplication.getAppContext()); 
       vertical_seekbar.setId(i); 
       final int id = vertical_seekbar.getId(); 
       vertical_seekbar.setProgressDrawable(getResources().getDrawable(R.drawable.sxm_selector_column)); 
       frame.addView(vertical_seekbar, params); 
       vertical_seekbar1=(VerticalSeekBar)view1.findViewById(id); 
       equalizer_view.addView(view1); 
       vertical_seekbar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

        @Override 
        public void onProgressChanged(SeekBar seekBar, 
          int progress, boolean arg2) { 


        } 

        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) { 

        } 

        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 


        } 
       }); 
      } 
1

로컬 변수로 vertical_seekbar 및 view1 확인하십시오. 인스턴스로 만들었으므로 마지막 반복의 가치 만 유지하므로 마지막 탐색 바가 작동합니다. 내가 모든 위젯을 안드로이드 실현 무슨이에 내 코드에서

for (int i = 0; i < controlList.size(); i++) { 
      View view1 = seekbar_inflate.inflate(R.layout.mysxm_control_coloumn, null, false); 
      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT, 
        LinearLayout.LayoutParams.WRAP_CONTENT); 
      FrameLayout frame = (FrameLayout) view1 
        .findViewById(R.id.sliderLayout); 
      VerticalSeekBar vertical_seekbar=new VerticalSeekBar(MyApplication.getAppContext()); 
      vertical_seekbar.setId(i); 
      final int id = vertical_seekbar.getId(); 
      vertical_seekbar.setProgressDrawable(getResources().getDrawable(R.drawable.sxm_selector_column)); 
      frame.addView(vertical_seekbar, params); 
      vertical_seekbar=(VerticalSeekBar)view1.findViewById(id); 
      equalizer_view.addView(view1); 
      vertical_seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

       @Override 
       public void onProgressChanged(SeekBar seekBar, 
         int progress, boolean arg2) { 


       } 

       @Override 
       public void onStartTrackingTouch(SeekBar seekBar) { 

       } 

       @Override 
       public void onStopTrackingTouch(SeekBar seekBar) { 


       } 
      }); 
     }