2013-03-10 72 views
0

你好我试图为Android开发不能使静态参考非静态字段时

import android.text.format.Time; 

这是我在保护无效onCreateMainActivity类代码代码的时间。

TextView abc; 
abc= (TextView) findViewById(R.id.clockTextView); 
abc.setText("Time is " + Time.hour + ":" + Time.minute); 

为什么我不断收到错误Cannnot make a static reference to the non-static field Time.hour以及如何解决这个问题?谢谢。

+0

创建一个对象,然后用它..与Android – 2013-03-10 06:45:33

+6

@Pragnani开始之前先通过核心Java教程 - 这是不正确。 'Time.hour'和'Time.minute'是_instance_字段。 – 2013-03-10 06:48:55

回答

2

hourminute字段android.text.format.Time是实例字段。您需要创建的Time一个实例来访问它们:

TextView abc; 
Time time = new Time(); // initialized to January 1, 1970 in default time zone 
time.setToNow(); 
abc= (TextView) findViewById(R.id.clockTextView); 
abc.setText("Time is " + time.hour + ":" + time.minute); 
2

Cannnot使静态参考非静态字段Time.hour

这是因为你试图访问静态方法非静态字段。 Time.hour是一个实例字段(非静态),因此将其称为Time.hour是没有意义的,因为您没有Time实例。

您需要创建一个Time对象,然后才能使用myTime.hour

+0

Time.hour和Time.minute不是静态字段! – BobTheBuilder 2013-03-10 06:47:43

+1

这是倒退,不是吗? 'Time.hour'和'Time.minute'不是静态字段。从静态方法访问它们并不重要;没有'Time'对象的实例就无法访问它们。该错误消息甚至提示:“**非静态**字段Time.hour” – 2013-03-10 06:47:46

+0

也许您混合使用小时和小时 – BobTheBuilder 2013-03-10 06:48:37

相关问题