2011-12-09 28 views
15

我想確定我在strings.xml文件意圖的字符串名稱,然後該字符串綁定到一個意圖過濾器,像這樣:您可以使用字符串資源定義Android意圖過濾器嗎?

<intent-filter > 
    <action android:name="@string/app_intent" > 
    </action> 

    <category android:name="android.intent.category.DEFAULT" > 
    </category> 
</intent-filter> 

當我想這不過,我得到有關係統的各種錯誤可能找不到處理我的意圖的活動。我試圖保持值(即意圖名稱)集中,而不是在清單以及代碼中進行硬編碼。實際上,至少這可以讓我將其集中到應用程序代碼之外,但我仍然在清單中對其進行了硬編碼。

這是真的不可能做或有沒有辦法讓它工作?

+3

有趣的問題。如果從「@ string/app_intent」附近刪除「」,會發生什麼情況?我期望構建錯誤,但它可能值得一試。 – Squonk

+0

有趣的問題。 –

+0

出於好奇,你會期望*做什麼?資源可能因設備配置而異 - 從橫向和縱向定位到屏幕尺寸到當前語言。您不希望意圖操作因這些參數而異。 – adamp

回答

6

它不是意向過濾器的問題,問題是與android:nameandroid:name屬性也沒有爲活動名稱獲取字符串資源。示例<activity android:name="@string/app" android:label="@string/app_name">在android中無效。

+0

它是**具體**的'android:name'屬性,還是僅限於活動節點?因爲另一個,'android:label' **不會**取得資源ID,至少在清單的'application'節點上。 – eidylon

+0

嗯,我不確定限制在哪裏,因爲清單DO中的某些屬性實際上支持這種方法。但顯然這一個,不管出於什麼原因,都沒有。 – eidylon

相關問題