我正在尝试制作应用来跟踪出勤率。为此,我使用数字选择器。
这是代码
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
NumberPicker np1,np2;
TextView tv1,tv3,tv2;
EditText et1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
np1 = (NumberPicker) findViewById(R.id.numberPicker1);
np2 = (NumberPicker) findViewById(R.id.numberPicker2);
et1 = (EditText) findViewById(R.id.editText1);
tv1 = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
tv3 = (TextView) findViewById(R.id.textView3);
np1.setMinValue(0);
np1.setMaxValue(50);
np1.setWrapSelectorWheel(true);
np2.setMinValue(0);
np2.setMaxValue(50);
np2.setWrapSelectorWheel(true);
np1.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldValb, int newValb) {
tv3.setText("Bunked Lecs "+ newValb);
}
});
np2.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldValt, int newValt) {
tv2.setText("Total Lecs "+ newValt);
}
});
tv1.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
tv1.setVisibility(4);
final EditText et1=(EditText)findViewById(R.id.editText1);
et1.setVisibility(1);
return false;
}
});
}
}
我需要做的是每当用户更改数字选择器中的值时计算并打印(1-newValb/newVal)
。
我怎么能实现这个目标呢?
或者我应该在此代码中做出哪些更改
答案 0 :(得分:0)
我认为它比我初想的更容易:
public void updateResult() {
int newValb = np1.getValue();
int newValt = np2.getValue();
float result = 1 - newValb / newValt;
tv1.setText(String.valueOf(result));
}
np1.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldValb, int newValb) {
updateResult();
}
});
np2.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldValt, int newValt) {
updateResult();
}
});
或者我完全误解了你?