在我的Android应用程序中,我有一个TextView
和一个SeekBar
。这两个值都用于按钮单击计算结果。
问题是如何捕获SeekBar
值并将其转换为String以进行计算。
代码如下:
class clicker implements Button.OnClickListener {
public void onClick(View v) {
String a,b;
Integer vis;
a = txtbox3.getText().toString();
b = slider1.getContext().toString();
vis = (Integer.parseInt(a)*Integer.parseInt(b))/100;
tv.setText(vis.toString());
}
}
请帮助。提前致谢。
答案 0 :(得分:24)
您正在寻找ProgressBar
类的方法getProgress(),因为SeekBar
是ProgressBar
的子类。
所以基本上就是这样的。
int value = seekBar.getProgress();
另外,我真的不明白为什么要将int转换为String,以便稍后可以将该String转换为Integer。这没有任何意义。
答案 1 :(得分:5)
您可以将进度值存储到全局整数变量中。 然后,您可以随时随地使用它。 试试这个代码。 它会帮助你...
int p=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TextView textView=(TextView) findViewById(R.id.t1);
final SeekBar seek=(SeekBar) findViewById(R.id.seekBar1);
final Button button=(Button) findViewById(R.id.button1);
seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
// TODO Auto-generated method stub
p=progress;
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String a = textView.getText().toString();
vis = (Integer.parseInt(a)*p)/100;
text.setText(vis.toString());
}
});
答案 2 :(得分:0)
// variable in top
String infos;
//-----`enter code here`
// defaultSeekBar (assign by your id)
defaultSeekBar.setOnProgressChangedListener(new ProgressListener(){
@Override
public void invoke(int i) {
Log.d("VALUE",""+ i);
infos = String.valueOf(defaultSeekBar.getProgress());
textViewDefaultSeek.setText(infos);
}
});