繁体   English   中英

如何使用从一种方法到另一种方法的值?

[英]How to use a value from one method to other?

所以我在 android 工作室开发了一个bmi计算器活动。 我遇到了一个问题,我从 TextView 中定义的不同TextView的两种方法中获得了两个变量的值,这些方法在 class 中定义。 这应该不是问题,但是一旦我在应用程序中切换到另一个TextView 第一个发送一个零值,这是问题所在,有人知道如何解决吗? 谢谢 !

onCreate 中提供值的两个方法:

inheight.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                    height = Double.parseDouble(inheight.getText().toString());

                if(KeyEvent.KEYCODE_DEL== keyCode)
                {
                    if(inheight.getText().length() != 0)
                        inheight.setText(inheight.getText().subSequence(0,inheight.getText().length()-1));
                }

                return true;
            }
        });




        inweight.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                    weight = Integer.parseInt(inweight.getText().toString());

                if(KeyEvent.KEYCODE_DEL == keyCode)
                {
                    if(inweight.getText().length() != 0)
                    inweight.setText(inweight.getText().subSequence(0,inweight.getText().length()-1));
                }
                return true;
            }
        });

以及我尝试计算的计算方法

    public void calculate()
    {

        if(height!=0 && weight !=0)
       {
// do this
       }
else
{
            Toast.makeText(this, "Error: Values Cannot Be Zero!", Toast.LENGTH_LONG).show();

}

所以当我运行它时,它总是显示吐司消息:(。请帮助!

android 文档中所述,View.OnKeyListener 仅对硬件键盘有用,并且软件输入法(如 android 使用的一个)没有义务触发此侦听器。

因此,我不会使用 View.OnKeyListener 来获取您的值,而是尝试一种不同的方法(即在按下按钮后获取值,实现 View.OnClickListener )

您还确定只有第一个 TextView 给您零值,还是两者兼而有之?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM