2013-03-10 71 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

相關問題