2017-09-03 75 views
-2

所以我正在开发Android程序,显示我的年龄给出了他们的出生年份。但我的应用程序不显示任何答案,它只显示0按钮时按下。 您能否请我建议我去哪里错了。并告诉我如何显示2017年之间的差异 - myAge。如何让我的显示在我的textView在Android?

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

+2

您应该从您的点击侦听器中获取edittext的值。目前,您可以在应用程序启动时获取编辑文本的值(onCreate)。如果你想获得编辑文本的值,当你按下一个按钮,你需要在onClickListener – swerly

+0

并获得正确的输出从'yearOfBirth'减去'年' – Blasanka

回答

1

删除

yearOfBirth = Integer.parseInt(editText.getText().toString()); 

try块,并添加它的onClick块内。和

代替

myAge = yearOfBirth; 

int currYear = Calendar.getInstance().get(Calendar.YEAR); 
myAge = currYear - yearOfBirth; 

把年= 2017年将仅在今年,这就是为什么我建议你使用Calendar类,让你准确一年的工作。

+0

非常感谢你的代码作品像魅力。我我对android很陌生,这有助于我快速学习新东西。谢谢 –

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)); 
       } 
      }); 
0

看起来像你计算年龄的逻辑是错误的。

myAge = year - yearOfBirth; //calculate age 

这应该有效。

相关问题