java - 将 Math.log 应用于 EditText

标签 java android user-interface math android-edittext

我在执行以下代码时遇到错误。

数学不能应用于 android.widget.EditText

然后,我用谷歌搜索了这个问题,找到了一个链接 Math with an integer obtained from an EditText 。 我尝试编辑相关代码。但是,我还没有解决我的问题。

这是我针对各个类(class) Activity 的用户界面。您可以看到,我将从微调器中选择相应的模型并提供 4 个不同的输入。

enter image description here

接下来是我的代码的一些部分:

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        String tDistance = distanceEdit.getText().toString();
        String freqStr = freqEdit.getText().toString();
        String tBase = tHeightEdit.getText().toString();
        String rMobile = rHeightEdit.getText().toString();
        double distance = Double.parseDouble(!tDistance.isEmpty() ? tDistance : "0");
        double frequency = Double.parseDouble(!freqStr.isEmpty() ? freqStr : "0");
        //double frequency = Double.parseDouble(freqStr);
        double baseHeight = Double.parseDouble(!tBase.isEmpty() ? tBase : "0");
        double mobileHeight = Double.parseDouble(!rMobile.isEmpty() ? rMobile : "0");



        if(v == calButton) {
            //String freqStr = freqEdit.getText().toString();

            if(freqStr != null && !freqStr.isEmpty()) {
                mResult=69.55+26.16*Math.log(frequency)-13.82*Math.log(baseHeight)-antennaFac+(44.9-6.55*Math.log(baseHeight))*Math.log(distance);

            }
        } else
        if(v == clearButton) {
        }
    }

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                               long arg3) {
        // TODO Auto-generated method stub
        switch(arg2) {
            case 0:
                antennaFac = (1.1*Math.log(freqEdit)-0.7)*rHeightEdit-(1.56*Math.log(freqEdit)-0.8);//Error from freqEdit - Math cannot be applied to android.widget.EditText
//Error when trying to use frequency variable - Unable to resolve symbol
                    break;
                case 1:
                    break;
                case 2:
                    break;
                case 3:
                    break;
            }
        }

我的问题目前出现在 onItemSelected 方法中,其中我的 freqEdit 参数显示了我上面突出显示的错误。据我自己的理解,它应该是已经在 OnClick 方法中声明的频率变量。但是,它说“无法解析符号‘频率’”

最佳答案

您已在 onClick 函数中声明了 Frequency 变量,并且 onItemSelected 处于完全不同的范围内。

将“频率”声明为成员类,并按照您已经执行的操作在 onClick 中更新其值,然后您将能够在 onItemSelected 方法中使用它。

希望对你有帮助

编辑

您还可以在 onClick 方法中再次执行以下语句来重新计算您的频率值。

String freqStr = freqEdit.getText().toString();
double frequency = Double.parseDouble(!freqStr.isEmpty() ? freqStr : "0");

关于java - 将 Math.log 应用于 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32368407/

相关文章:

java - 如何创建出现在程序最顶部的 Swing 菜单栏?

java - 获取对象的类

java - 全局变量在按下后丢失的 ApplicationContext

java - 使用 native SQL 将外部列连接到 Hibernate 实体

java - DefaultTableModel 有零列

java - 无法使用导入的库。安卓工作室。谷歌云端点 jar

安卓数据持久化

java - GUI FlowLayout,锁定所有组件位置

java - 在 Android 中捕获双击

android - 滑动手势!懒惰滑动应用程序中的android