【问题标题】:Add or Subtract the Integer Value of TextView using Number Picker in android在android中使用数字选择器添加或减去TextView的整数值
【发布时间】: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


【解决方案1】:
 readingPicker.setValueChangedListener(new ValueChangedListener() {
            @Override
            public void valueChanged(int value, ActionEnum action) {
                switch (action) {
                    case INCREMENT:
                        double currentValue = Double.parseDouble(pointsTextView.getText().toString());
                        currentValue = currentValue + 0.5;
                        pointsTextView.setText(String.valueOf(currentValue));
                        break;
                    case DECREMENT:
                        double currentValue1 = Double.parseDouble(pointsTextView.getText().toString());
                        currentValue1 = currentValue1 - 0.5;
                        pointsTextView.setText(String.valueOf(currentValue1));

                }

            }
        });

这样您就可以达到预期的效果。获取pointsTextView 的当前值,然后对其进行加减运算,并再次将该值设置为pointsTextView

【讨论】:

  • 欢迎 :) 快乐的编码伙伴!
猜你喜欢
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 2020-12-14
  • 2020-05-02
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多