操作'*'不能应用于"android.widget.RadioButton",'int'



Operatorr '*' 不能应用于 'android.widget.RadioButton', 'int'

我正在创建一个应用程序,用于使用限制为 20 张纸的单选按钮打印纸张的成本。 我不确定为什么我会收到此错误,因为我正在从我的 EditText 中获取信息。

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import java.text.DecimalFormat;
public class MainActivity extends Activity {
double totalcost;
double price1 = 0.15;
double price2 = 0.45;
double price3 = 0.80;
int prints;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setLogo(R.mipmap.ic_launcher);
getActionBar().setDisplayUseLogoEnabled(true);
final EditText prints =(EditText)findViewById(R.id.noprint);
final RadioButton price1 = (RadioButton)findViewById(R.id.rad1);
final RadioButton price2 = (RadioButton)findViewById(R.id.rad2);
final RadioButton price3 = (RadioButton)findViewById(R.id.rad3);
final TextView totalcost =(TextView)findViewById(R.id.cost);
Button calculate =(Button)findViewById(R.id.btn1);
calculate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String prints = noprint.getText().toString();
int prints = Integer.parseInt(noprint);
DecimalFormat tenth = new DecimalFormat("$##.##");
if (price1.isChecked()) {
if (prints <= 20) {
totalcost = price1 * prints;
} else {
Toast.makeText(MainActivity.this, "Number of prints must be less than 20", Toast.LENGTH_LONG).show();
}
}

查看您的程序,您有一个命名问题。在类级别,定义属性

double price1 = 0.15;

但在方法onCreate(...)中,您还定义了

final RadioButton price1 = (RadioButton)findViewById(R.id.rad1);

这有效地隐藏了属性。因此,当你写

totalcost = price1 * prints;

您命令 java 将RadioButtonint相乘。由于这个二进制运算符(*(RadioButton, int)(在Java中是未定义的,所以你会得到你得到的编译器错误。您的意图可能是使用属性price1。快速解决方法是通过this引用直观地使用该属性:

totalcost = this.price1 * prints;

一个更干净的解决方法是重命名变量,这样您就不会使用局部变量隐藏属性。

最新更新