Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将一个值从一种方法使用到另一种方法?_Java_Android_Textview - Fatal编程技术网

Java 如何将一个值从一种方法使用到另一种方法?

Java 如何将一个值从一种方法使用到另一种方法?,java,android,textview,Java,Android,Textview,所以我在android studio中开发了一个bmi计算器活动。我遇到了一个问题,从类中定义的不同TextView的两个方法中得到了两个变量的值。这应该不是问题,但一旦我在应用程序中切换到另一个TextView。第一个发送一个零值,这就是问题所在,有人知道如何修复它吗?谢谢 onCreate中提供值的两种方法: inheight.setOnKeyListener(new View.OnKeyListener() { @Override publi

所以我在android studio中开发了一个
bmi
计算器活动。我遇到了一个问题,从类中定义的不同
TextView
的两个方法中得到了两个变量的值。这应该不是问题,但一旦我在应用程序中切换到另一个
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();

}
因此,当我运行它时,它总是显示toast消息:(.请帮助!

如中所述,View.OnKeyListener仅对硬件键盘有用,而软件输入方法(如android使用的方法)没有义务触发此侦听器

因此,与使用View.OnKeyListener获取值不同,我将尝试另一种方法(即在按下按钮后获取值,实现View.OnClickListener)


另外,您确定只有第一个文本视图为零值,或者两者都为零值吗?

可用于实时捕获
EditText
中的更改。感谢您的快速响应,我将尝试查看,并向您提供porblem@Jhon的最新信息