我最近開始學習android工作室,我做了一個應用程序,顯示如果一個數字是三角形或正方形。問題是,當用戶沒有把任何東西放入文本框,然後我的應用程序崩潰!這是爲什麼發生?我需要改變什麼?應用程序崩潰時空
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
class Number {
int number;
public boolean isSquare() {
double squareRoot = Math.sqrt(number);
if (squareRoot == Math.floor(squareRoot)) {
return true;
} else {
return false;
}
}
public boolean isTriangular() {
int x = 1;
int y = 1;
while (y < number) {
x++;
y = y + x;
}
if (y == number) {
return true;
} else {
return false;
}
}
}
public void testNumber(View view) {
String msg = "";
EditText usersNumber = (EditText) findViewById(R.id.usersNumber);
Number myNumber = new Number();
myNumber.number = Integer.parseInt(usersNumber.getText().toString());
if (usersNumber.getText().toString().isEmpty()) {
msg = myNumber.number + "Please eneter a Number!";
} else {
if (myNumber.isSquare()) {
if (myNumber.isTriangular()) {
msg = myNumber.number + "is both square and triangular!";
} else {
msg = myNumber.number + "is square but not traingular";
}
} else {
if (myNumber.isTriangular()) {
msg = myNumber.number + "is triangular but not suqare !";
} else {
msg = myNumber.number + "is neither";
}
}
}
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
發佈您的錯誤日誌 – Phil3992
爲什麼你添加了ios標籤?它不是obj-c或swift代碼! –
只是一個簡單的提示:將你的類'Number'放在它自己的.java文件中。沒有理由把它放在你的'Activity'類中。並檢查[參數化構造函數](http://stackoverflow.com/questions/34775298/what-is-the-use-of-a-parameterized-constructor-in-java) –