所以我正在开发Android程序,显示我的年龄给出他们的出生年份。但我的应用程序没有显示任何答案它只显示0按下按钮。 你能否告诉我出错的地方。并告诉我如何显示2017年之间的差异 - myAge。
public class MainActivity extends AppCompatActivity {
Button press;
EditText editText;
TextView enterText;
int myAge;
int yearOfBirth;
int year = 2017;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText)findViewById(R.id.editText) ;
enterText = (TextView)findViewById(R.id.entertext);
press = (Button)findViewById(R.id.press);
try
{
yearOfBirth = Integer.parseInt(editText.getText().toString());
}catch(NumberFormatException e)
{
e.printStackTrace();
}
press.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myAge = yearOfBirth;
enterText.setText(String.valueOf(myAge));
}
});
}
}
截图:
答案 0 :(得分:1)
您似乎只是错过了计算年龄的步骤。
您正确地提取yearOfBirth
,但您只是将myAge
设置为它,而不是像
myAge = year - yearOfBirth
喜欢这个。
press.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myAge = year - yearOfBirth; // Here.
enterText.setText(String.valueOf(myAge));
}
});
答案 1 :(得分:1)
除去
yearOfBirth = Integer.parseInt(editText.getText().toString());
在try块中并将其添加到onClick块中。
而不是
myAge = yearOfBirth;
写
int currYear = Calendar.getInstance().get(Calendar.YEAR);
myAge = currYear - yearOfBirth;
put year = 2017将只适用于今年,这就是为什么我建议您使用Calendar类来为您提供确切的年份。
答案 2 :(得分:0)
看起来你计算年龄的逻辑是错误的。
myAge = year - yearOfBirth; //calculate age
这应该有效。