【发布时间】:2018-04-30 17:49:36
【问题描述】:
运算符 '*' 不能应用于 '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();
}
}
【问题讨论】:
-
price1在方法onCreate(...)中定义为final RadioButton price1 = (RadioButton)findViewById(R.id.rad1);,Java 不知道如何将int与RadioButton相乘。因此错误。 -
为您的
RadioButtons 使用不同的变量名称