2016-07-31 4 views
0

나는 android에서 3 개의 탐색 바를 가지고 있습니다.텍스트 뷰 필드에서 Seekbar 값을 볼 수 없습니다.

사용자가 이러한 seekbars를 선택하고 적절하게 수정할 때마다 texview의 값을 표시하고 싶습니다. onStopTrackingTouch 메소드에 setText 함수를 넣었습니다. 그러나 그것이 표시되는 것은 모두 0입니다. 누군가가 도움을 줄 수 있습니까? 감사합니다. .

내 코드 :

import android.graphics.Color; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.widget.SeekBar; 
import android.widget.TextView; 

import app.minimize.com.seek_bar_compat.SeekBarCompat; 

public class BudgetActivity extends AppCompatActivity { 
    public TextView seekbarvalue; 
    int groceryvalue,restaurantvalue,enterntainmnetvalue,totalvalueset,totalbudget=1000; 
    boolean isGrocerySet,isEntertainmnetSet,isRestaurantSet; 
    SeekBarCompat groceryseekBarCompat,entertainmentseekBarCompat,restaurantseekbarCompat; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_budget); 

     // CrystalSeekbar groceryseekBarCompat = (CrystalSeekbar) findViewById(R.id.grocerySeekBar); 

     groceryseekBarCompat = (SeekBarCompat) findViewById(R.id.groceryseekbar); 
     groceryseekBarCompat.setThumbColor(Color.MAGENTA); 
     groceryseekBarCompat.setProgressColor(Color.LTGRAY); 
     groceryseekBarCompat.setProgressBackgroundColor(Color.GREEN); 
     groceryseekBarCompat.setThumbAlpha(128); 
     groceryseekBarCompat.setMax(totalbudget); 

     entertainmentseekBarCompat = (SeekBarCompat) findViewById(R.id.entertainmentseekbar); 
     entertainmentseekBarCompat.setThumbColor(Color.RED); 
     entertainmentseekBarCompat.setProgressColor(Color.MAGENTA); 
     entertainmentseekBarCompat.setProgressBackgroundColor(Color.BLUE); 
     entertainmentseekBarCompat.setThumbAlpha(128); 
     entertainmentseekBarCompat.setMax(totalbudget); 

     restaurantseekbarCompat = (SeekBarCompat) findViewById(R.id.restaurantseekbar); 
     restaurantseekbarCompat.setThumbColor(Color.YELLOW); 
     restaurantseekbarCompat.setProgressColor(Color.CYAN); 
     restaurantseekbarCompat.setProgressBackgroundColor(Color.GREEN); 
     restaurantseekbarCompat.setThumbAlpha(128); 
     restaurantseekbarCompat.setMax(totalbudget); 

     seekbarvalue = (TextView) findViewById(R.id.seekbarvalue) ; 


     /** 
     * Listener for grocery seekbar 
     */ 

     groceryseekBarCompat.setOnSeekBarChangeListener(new SeekBarCompat.OnSeekBarChangeListener(){ 

      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, 
              boolean fromUser) { 
       seekbarvalue.setText(String.valueOf(progress)); 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
       // TODO Auto-generated method stub 
       Log.d("Grocery on start" ,"clicked"); 
       totalvalueset = totalvalueset - seekBar.getProgress(); 
       Log.d("On start totalvalueset" ,String.valueOf(totalvalueset)); 
      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
       groceryvalue = seekBar.getProgress(); 
       Log.d("Seekbar progress" ,String.valueOf(seekBar.getProgress())); 
       // seekbarvalue.setText(String.valueOf(seekBar.getProgress())); 
       if(totalvalueset <=1000) { 
        totalvalueset += groceryvalue; 
       } 

       Log.d("Grocery on stop" ,String.valueOf(groceryvalue)); 
       Log.d("totalvalueset++++++" ,String.valueOf(totalvalueset)); 
       isGrocerySet = true; 
       isEntertainmnetSet = false; 
       isRestaurantSet = false; 
       setDynamicLimit(); 
      } 
     }); 



     /** 
     * Listener for the enterntainment seekbar 
     */ 

     entertainmentseekBarCompat.setOnSeekBarChangeListener(new SeekBarCompat.OnSeekBarChangeListener(){ 

      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, 
              boolean fromUser) { 
       // TODO Auto-generated method stub 
       seekbarvalue.setText(String.valueOf(progress)); 

      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
       // TODO Auto-generated method stub 
       Log.d("Enterntainment on start" ,"clicked"); 
       totalvalueset = totalvalueset - seekBar.getProgress(); 
       Log.d("On start totalvalueset" ,String.valueOf(totalvalueset)); 
      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
       enterntainmnetvalue = seekBar.getProgress(); 

       if(totalvalueset <=1000) { 
        totalvalueset += enterntainmnetvalue; 
       } 
       Log.d("Entertainment on stop" ,String.valueOf(enterntainmnetvalue)); 
       Log.d("totalvalueset+++++" ,String.valueOf(totalvalueset)); 
       seekbarvalue.setText(String.valueOf(enterntainmnetvalue)); 
       isEntertainmnetSet = true; 
       isGrocerySet = false; 
       isRestaurantSet = false; 
       setDynamicLimit(); 
      } 
     }); 



     /** 
     * Listener for the restaurant seekbar 
     */ 

     restaurantseekbarCompat.setOnSeekBarChangeListener(new SeekBarCompat.OnSeekBarChangeListener(){ 

      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, 
              boolean fromUser) { 
       // TODO Auto-generated method stub 
       restaurantvalue = progress; 
       seekbarvalue.setText(String.valueOf(progress)); 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
       // TODO Auto-generated method stub 
       Log.d("Restaurant on start" ,"clicked"); 
       totalvalueset = totalvalueset - seekBar.getProgress(); 
      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
       restaurantvalue = seekBar.getProgress(); 
       seekbarvalue.setText(String.valueOf(restaurantvalue)); 
       if(totalvalueset <=1000) { 
        totalvalueset+=restaurantvalue; 
       } 
       Log.d("Restaurant on stop" ,String.valueOf(restaurantvalue)); 
       Log.d("totalvalueset++" ,String.valueOf(totalvalueset)); 
       isRestaurantSet = true; 
       isGrocerySet = false; 
       isEntertainmnetSet = false; 
       setDynamicLimit(); 
      } 
     }); 

    } 

    private void setDynamicLimit() { 
      Log.d("setting dynamic limit" , String.valueOf(totalbudget-totalvalueset)); 
      if(!isEntertainmnetSet) entertainmentseekBarCompat.setMax(totalbudget-totalvalueset); 
      if(!isRestaurantSet) restaurantseekbarCompat.setMax(totalbudget-totalvalueset); 
      if(!isGrocerySet) groceryseekBarCompat.setMax(totalbudget-totalvalueset); 

    } 
} 
+0

첫 번째 seekbar에는 중지 추적시'setText'가 없습니다. 로그 값이 제대로 올까요? – Shaishav

+0

나는 그들을 추가하지 않았다. 하지만 다른 값들에 대해서도 작동하지 않습니다. –

+0

'onPreogressChanged()'에 값을 설정했기 때문에'onStopTrackingTouch()'에서도 설정하고있는 이유는 무엇입니까? 나는'onProgressChanged()'가이 트릭을해야한다고 생각한다. 로그 값이 양호합니까? – Shaishav

답변

0

그것은이 같은 텍스트 뷰 통과 progress을해야한다 :

yourTextViewName.setText (""+ 진보 + "을");

호프이 helps.helps.