我的简单计算有问题,只需从用户输入数字的edittext中进行乘法运算。当用户单击结果按钮时,用户从edittext输入的数字会进行乘法运算并在textview中显示结果。
input = (EditText)findViewById(R.id.input);
output1 = (TextView)findViewById(R.id.output_one);
output2 = (TextView)findViewById(R.id.output_two);
output3 = (TextView)findViewById(R.id.output_three);
result = (Button)findViewById(R.id.result);
result.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
output1.setText(input.getText()*"2");
output2.setText(input.getText()*"3");
output3.setText(input.getText()*"4");
}
}
(input.getText()*"")
显示红色下划线。它说'Operator *不能应用于android.text.editable,java.lang.String'。
任何人都可以填写我的代码?我是初学者:)
答案 0 :(得分:1)
String
,您需要在操作中转换为数字,您可以尝试:
Integer.valueOf ("")
答案 1 :(得分:0)
确保用户输入一个号码,使用
android:inputType="number"
<\ t>在EditText属性中。
input = (EditText)findViewById(R.id.input);
output1 = (TextView)findViewById(R.id.output_one);
output2 = (TextView)findViewById(R.id.output_two);
output3 = (TextView)findViewById(R.id.output_three);
result = (Button)findViewById(R.id.result);
result.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// storing the EditText value in a variable.
// do it in the onClick method only.
int inputVal = Integer.parseInt(input.getText().toString());
output1.setText(inputVal * 2);
output2.setText(inputVal * 3);
output3.setText(inputVal * 4);
}
}
答案 2 :(得分:0)
input
=&gt; EditText
当您使用input.getText()
时,您会获得Editable
类的对象。
如果您想获得其价值,则必须使用Editable
将String
转换为input.getText().toString()
。
现在你想要乘以该值,所以你必须将{String}转换为Integer(或相关的dataType),然后乘以Integer.parseInt(input.getText().toString())
,然后乘以你的值。
现在,您要将此更新后的值分配给TextView
,请使用String.valueOf()
。
所以最后你的代码应该是:
int inputVal = Integer.parseInt(input.getText().toString());
output1.setText(String.valueOf(inputVal * 2));
output2.setText(String.valueOf(inputVal * 3));
output3.setText(String.valueOf(inputVal * 4));
答案 3 :(得分:0)
使用此
output1.setText(Integer.valueOf(input.getText().trim())*Integer.valueOf("2"));
output2.setText(Integer.valueOf(input.getText().trim())*Integer.valueOf("3"));
output3.setText(Integer.valueOf(input.getText().trim())*Integer.valueOf("4"));
答案 4 :(得分:-1)
您正在尝试乘以字符串。您应该在将它们相乘之前将字符串转换为数字。
result.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try{
int inputInt = Integer.parseInt(input.getText());
int inputInt_times2 = 2*inputInt;
int inputInt_times3 = 3*inputInt;
int inputInt_times4 = 4*inputInt;
output1.setText(inputInt_times2+"");
output2.setText(inputInt_times3+"");
output3.setText(inputInt_times4+"");
}catch(Exception e){
//handle the exception here
}
}
}
我在setText中添加的(+&#34;&#34;)是将int再次转换为String。