Android Java 使用setOnSeekBarChangeListener或Button将两个SeekBar的数值相加。

0 人关注

作为安卓系统的新手,我试图使用setOnSeekBarChangeListener或使用Button来简单地添加(求和)两个SeekBars的调整值。 下面的项目工作得很好,但是总和仍然是0,我找不到解决办法。谢谢你的帮助。通常情况下,我使用Spring Boot和Vaadin,它是如此简单:)

private int progress1 = 0; private int progress2 = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textViewMain; Button button; final TextView textViewMain_ = findViewById(R.id.textViewMain); Button buttonSum = findViewById(R.id.button); SeekBar seekBar = findViewById(R.id.seekBar); final TextView textViewSeekBar = findViewById(R.id.textView2); SeekBar seekBar2 = findViewById(R.id.seekBar2); final TextView textViewSeekBar2 = findViewById(R.id.textView3); seekBar.setMax(600); seekBar.setProgress(5); seekBar2.setMax(900); seekBar2.setProgress(5); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { public int progress1 = 0; @Override public void onProgressChanged(SeekBar seekBar, int progress1, boolean fromUser) { this.progress1 = progress1; // getUpdateTotal(); //textViewSeekBar.setText(Integer.parseInt(String.valueOf(seekBar)));//todo not work textViewSeekBar.setText(Integer.toString(progress1)); Log.i("Seeker1: ", Integer.toString(progress1)); @Override public void onStartTrackingTouch(SeekBar seekBar) { @Override public void onStopTrackingTouch(SeekBar seekBar) { seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { public int progress2 = 0; @Override public void onProgressChanged(SeekBar seekBar, int progress2, boolean fromUser) { this.progress2 = progress2; //getUpdateTotal(); textViewSeekBar2.setText(Integer.toString(progress2)); Log.i("Seeker2: ", Integer.toString(progress2)); @Override public void onStartTrackingTouch(SeekBar seekBar) { @Override public void onStopTrackingTouch(SeekBar seekBar) { buttonSum.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getSummaryTwoSeekBarValue(progress1, progress2); Log.i("", getSummaryTwoSeekBarValue(progress1, progress2)); public String getSummaryTwoSeekBarValue(int progress1, int progress2) { final TextView textViewMain_ = findViewById(R.id.textViewMain); int total = progress1 + progress2; String totalString = String.valueOf(total); Log.i("", totalString); textViewMain_.setText(String.valueOf(totalString)); return totalString; [enter image description here][1] [1]: https://i.stack.imgur.com/HDx12.png
java
android
methods
sum
android-seekbar
Darek L
Darek L
发布于 2020-09-20
2 个回答
Miguel Cruces
Miguel Cruces
发布于 2020-09-20
已采纳
0 人赞同

你在主类和监听器中都定义了progress1和progress2,所以类的变量会一直是0,你必须使用 (your class name).this.progress1 = progress1; ,在第二个搜索栏中也是如此,修改主类而不是监听器的。

Darek L
Darek L
发布于 2020-09-20
0 人赞同
private int progress1; private int progress2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textViewMain; final TextView textViewMain_ = findViewById(R.id.textViewMain); SeekBar seekBar = findViewById(R.id.seekBar); final TextView textViewSeekBar = findViewById(R.id.textView2); SeekBar seekBar2 = findViewById(R.id.seekBar2); final TextView textViewSeekBar2 = findViewById(R.id.textView3); seekBar.setMax(600); seekBar.setProgress(5); seekBar2.setMax(900); seekBar2.setProgress(5); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress1, boolean fromUser) { getSummaryTwoSeekBarValue(progress1,progress2); textViewSeekBar.setText(Integer.toString(progress1)); Log.i("Seeker1: ", Integer.toString(progress1)); @Override public void onStartTrackingTouch(SeekBar seekBar) { @Override public void onStopTrackingTouch(SeekBar seekBar) { seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress2, boolean fromUser) { getSummaryTwoSeekBarValue(progress1,progress2); textViewSeekBar2.setText(Integer.toString(progress2)); Log.i("Seeker2: ", Integer.toString(progress2)); @Override public void onStartTrackingTouch(SeekBar seekBar) { @Override public void onStopTrackingTouch(SeekBar seekBar) { public String getSummaryTwoSeekBarValue(int progress1, int progress2) {//int progress1, int progress2 this.progress1=progress1; this.progress2=progress2; final TextView textViewMain_ = findViewById(R.id.textViewMain); int total = progress1 + progress2; String totalString = String.valueOf(total); Log.i("", totalString);