2012-11-14 95 views

回答

31

只需使用Context#getString()

String string = getString(android.R.string.cancel); 

我已經嘗試過這種方法,但沒有成功......我有一個類:public class MyDialogFragment extends DialogFragment {

DialogFragment不是Context的子類,所以你n eed去獲得有效的訪問權限(比如你的Activity)。使用此:

String string = getActivity().getString(android.R.string.cancel); 

,或因您發現您可以使用onAttach()通過活動,卻明白,只要你有一個有效的上下文一起工作,你可以做一個片段這裏面的任何地方。

+0

我已經嘗試過這種方法,但沒有成功......但現在我知道我在做什麼錯了:我有一個類:'公共類MyDialogFragment擴展DialogFragment {'和這個類內我做:private String xbtAffirmativeLabel = getString(android.R.string.cancel);這是問題所在,我只能在類似下面的方法中做到這一點:public void onAttach(Activity activity){感謝您的支持,它幫助我實現了這一點。 – HugoXP

0

這會將任何Android資源轉換爲字符串。 在這個例子中,我使用了'R.color.myColor',但它可以用於任何Android資源類型。

colors.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="btnDialBgColor">#00BFA5</color> 
    <color name="btnDialBgColorActive">#C51162</color> 
</resources> 

TypedValue typedValueActive = new TypedValue(); 
TypedValue typedValue = new TypedValue(); 
getResources().getValue(R.color.btnDialBgColorActive, typedValueActive, true); 
getResources().getValue(R.color.btnDialBgColor, typedValue, true); 

希望這有助於。