我在执行以下代码时遇到错误。
数学不能应用于 android.widget.EditText
然后,我用谷歌搜索了这个问题,找到了一个链接 Math with an integer obtained from an EditText 。 我尝试编辑相关代码。但是,我还没有解决我的问题。
这是我针对各个类(class) Activity 的用户界面。您可以看到,我将从微调器中选择相应的模型并提供 4 个不同的输入。
接下来是我的代码的一些部分:
@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/