【发布时间】:2019-12-19 16:08:20
【问题描述】:
我有两个数字选择器,例如:阅读数字选择器和诗歌数字选择器,默认情况下每个学生获得 10 分,每次学生犯错时,数字选择器都会增加,分数应该减少(0.5)分,示例代码给出下面,请帮助如何实现这个特定的方法。两个数字选择器都有增量和减量方法,两个数字选择器应该加减相同的textView,默认值为10。
public class MainActivity extends AppCompatActivity {
private NumberPicker readingPicker;
private NumberPicker poempicker;
private TextView pointsTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
readingPicker = findViewById(R.id.reading_picker);
poempicker = findViewById(R.id.poem_picker);
// increase or decrease value of points text view (10 default) using below number pickers.
pointsTextView = findViewById(R.id.ten_points);
readingPicker.setValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(int value, ActionEnum action) {
switch (action){
case INCREMENT:
// TODO: decrease value of pointsTextView by 0.5
break;
case DECREMENT:
// TODO: increase value of pointsTextView by 0.5
}
}
});
// after getting the value from above reading picker
poempicker.setValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(int value, ActionEnum action) {
switch (action) {
case INCREMENT:
// TODO: decrease value of same pointsTextView by 0.5
break;
case DECREMENT:
// TODO: increase value of same pointsTextView by 0.5
}
}
});
}
}
我可以使用阅读数字选择器进行减法,但在那之后,我对如何获取 textview 的当前值并使用第二个数字选择器进一步减法有点困惑。
【问题讨论】:
-
您可以通过pointsTextView.getText().toString()获取textview的当前值,并根据您的要求转换为double或Integer。
-
@SnehaSarkar 能否请您发布一个示例代码,我是在阅读数字选择器中以增量方法完成的,但之后我似乎无法正确处理。
-
我对你的要求有点困惑。如果学生读错了会调用减量动作,是这样吗?如果是这样,那么诗歌选择器的目的是什么?
-
@SnehaSarkar 一个学生默认得 10 分,首先是边读边读 如果学生犯了错误(+),这意味着学生犯了 1 个错误,所以满分(10 分) (0.5) 被减去,现在文本视图位于 (9.5)。
-
@SnehaSarkar 当同一个学生背诵诗歌时,如果学生在诗歌编号选择器中再次出错(+),则文本视图在(9.5)-(0.5)它应该更新值到 (9)。
标签: android textview increment numberpicker decrement