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);
}
}
첫 번째 seekbar에는 중지 추적시'setText'가 없습니다. 로그 값이 제대로 올까요? – Shaishav
나는 그들을 추가하지 않았다. 하지만 다른 값들에 대해서도 작동하지 않습니다. –
'onPreogressChanged()'에 값을 설정했기 때문에'onStopTrackingTouch()'에서도 설정하고있는 이유는 무엇입니까? 나는'onProgressChanged()'가이 트릭을해야한다고 생각한다. 로그 값이 양호합니까? – Shaishav