为什么我无法操作Edit text int?

时间:2017-03-01 16:15:42

标签: java android-studio

您好我想为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);
    }
 }

1 个答案:

答案 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中输入的数据。确保它们不是空的。