Я не уверен, почему вы устанавливаете tvp и tvc, чтобы они отображали одно и то же значение, но если вы хотите, чтобы tvp обновлялся динамически, чтобы соответствовать значению tvc, то вам нужно переместить ваш последний бит кода в ваш Listener, т. е.
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
tvc.setText(String.valueOf(progress-100));
TextView tvp = (TextView) findViewById(R.id.textView14);
tvp.setText(tvc.getText().toString());
}
Или более аккуратно:
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
String progress = String.valueOf(progress-100)
tvc.setText(progress);
tvp.setText(progress); // move the findViewById outside this method, and put it with tvc
}
В качестве альтернативы, если у вас возникают трудности с изменением текста в tvc, это может быть потому, что вы объявили его как final
.Если это так, попробуйте сделать tvc неконечной переменной-членом вашего класса, то есть поместить ее вне любого метода, в начале вашего класса, например так:
public class MyClass extends Activity {
private TextView tvc;
...
РЕДАКТИРОВАТЬ:
Спасибо за дополнительную информацию!Попробуйте что-то вроде этого:
public class MyClass extends Activity {
private TextView tvc;
private TextView tvd;
private TextView tvp;
... // somewhere here you need to get the TextViews from the Layout
... // missing out lots of code here and skipping straight to onProgressChanged for first seekBar
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
String progress1 = String.valueOf(progress-100)
tvc.setText(progress1);
String progress2 = tvd.getText().toString;
String result = resultOfSomeCalculationUsingTheInputs();
tvp.setText(result);
}
}
В вашем другом SeekBar вы бы сделали что-то подобное (установите текст tvd, получите текст tvc, выполните вычисления, установите результат как текст tvp)