您好我想为Android制作一个简单的bmi应用程序,因为您可以看到错误发生 为什么我不能操作编辑文本,因为你可以看到我将其转换为int值,但我仍然有这个问题。
package my.myapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class WelcomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome_activity);
final EditText eText = (EditText) findViewById(R.id.editText);
final EditText eText2=(EditText) findViewById(R.id.editText2);
final TextView tView = (TextView) findViewById(R.id.textView);
final Button butt = (Button) findViewById(R.id.button);
View.OnClickListener listen = new View.OnClickListener() {
@Override
public void onClick(View v) {
String E1value =eText.getText().toString();
int E1value2=Integer.parseInt(E1value);
String E2value=eText2.getText().toString();
int E2value2=Integer.parseInt(E2value);
int answer=(E1value2)/(E2value2/10)^2;
tView.setText(answer);
}
};
butt.setOnClickListener(listen);
}
}
答案 0 :(得分:2)
您可以做一些事情:
1)setText()接受一个字符串作为参数。所以将回答传递给
tView.setText(""+answer);
2)将 E1value2 , E2value2 和 answer 声明为float或double,因为 E2value2 / 10 可能会返回0如果在第二个EditText中输入的数字小于10
int answer=(E1value2)/(E2value2/10)^2;
所以,您需要将代码更改为(我自己做了一些编辑以简化它)
float E1value = Float.parseFloat(eText.getText().toString());
float E2value = Float.parseFloat(eText2.getText().toString());
float answer = (E1value) / (E2value / 10);
answer = (int) answer ^ 2;
tView.setText("" + answer);
另外,我建议您在执行计算之前验证在EditText中输入的数据。确保它们不是空的。