【发布时间】:2017-07-27 15:32:14
【问题描述】:
我最近开始学习 android studio,我制作了一个显示数字是三角形还是正方形的应用。问题是当用户没有在文本字段中输入任何内容时,我的应用程序就会崩溃!为什么会这样?我需要改变什么?
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);
}
}
【问题讨论】:
-
发布您的错误日志
-
为什么要加ios标签?它不是 obj-c 或 swift 代码!!
-
只是一个快速提示:将您的类
Number放在它自己的 .java 文件中。没有理由把它放在你的Activity类中。并检查parametrized constructor -
使用 android studio 2.2.3 顺便说一句