2011-11-21 167 views
0

我的應用程序試圖通過查找設備的方向:有些設備不提供方向的數據

int orientation = getResources().getConfiguration.orientation;

這似乎對我的三星Galaxy S2完美地工作,但在HTC Desire HD的測試時,它然後嘗試在Toast中引用我的整數以檢查其發現的正確方向,則會拋出Resources $ NotFoundException。

我正確的認爲這種查找手機方向的方法並不總是有效,如果是這樣的話,爲什麼當我試圖引用整數時不會拋出NullPointerException?

我的應用程序捕獲照片,因此我需要找到手機的方向,以便爲SurfaceView設置尺寸並根據需要旋轉圖像。有沒有其他的方式來找到手機的方向?

在此先感謝您的答覆。

+0

你是什麼意思,你想引用你的整數?如果您剛剛讀取本地變量中先前保存的值,則不會發生異常。 – Malcolm

+0

在我的吐司我試圖打印方向整數(在縱向時應該是1),但是這一行是引發NotFoundException的地方。 –

+0

那麼我想看看這一行。 – Malcolm

回答

1

當您撥打Toast.makeText()時,請注意有兩種方法:makeText(Context context, int resId, int duration)makeText(Context context, CharSequence text, int duration)。當你使用一個整數時,第一個方法被調用,並且Android試圖找到與整數相關的資源,這不是你想要的。

,你可以做,而不是簡單的事情是你的整數轉換成字符串:

Toast.makeText(context, Integer.toString(orientation), Toast.LENGTH_SHORT).show(); 

這樣的Android不會尋找任何資源,並會告訴你所需要的文本。

+0

感謝這個Malcolm,我沒有意識到Toast.makeText()有兩個不同的構造函數。 –

相關問題