在generateData()方法之上,我声明了一个整数变量bw,我希望它等于当前搜索栏进度的值,怎么做?或者实际上我可以直接使用进度值进行计算吗? 对不起,这可能听起来是一个愚蠢的问题,但我是编程的绝对新手。
如果我把bw =进展;在onprogresschanged中,无论我如何滑动搜索条,bw * 10和bw * 9的结果都将变为0。
public class MainActivity extends AppCompatActivity {
int bw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyAdapter adapter = new MyAdapter(this, generateData());
ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
final TextView seekBarValue = (TextView) findViewById(R.id.valuetextview);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
bw=progress;
seekBarValue.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
//Detail of drugs in following formatL "Drug Name", doseperkg,"frequency"
private ArrayList<DrugItem> generateData() {
ArrayList<DrugItem> items = new ArrayList<DrugItem>();
items.add(new DrugItem("Ceclor", bw * 10, "mg every 8 hours"));
items.add(new DrugItem("Cedax", bw * 9, "mg every 24 hours"));
items.add(new DrugItem("Zinnat", bw * 10, "mg every 12 hours"));
items.add(new DrugItem("Zithromax", bw * 10, "mg every 24 hours"));
return items;
}
}
答案 0 :(得分:1)
是显而易见的。
在以下方法 int 进度 中,这是您的主要观点值。你可以用它来计算。
但请务必使用 onProgressChanged 方法解决。
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// your calculation...
}
答案 1 :(得分:0)
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
bw=progress;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
除此之外,您可能希望将最大值设置为seekbar的搜索
seekBar.setMax(max_value-min_value);