如何让我在android中的textView上显示?

时间:2017-09-03 05:23:40

标签: java android

所以我正在开发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));
              }
          });
   }
}

截图:

enter image description here

3 个答案:

答案 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

这应该有效。