2012-11-14 14 views

Trả lời

31

Đơn giản chỉ cần sử dụng Context#getString():

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

Tôi đã cố gắng tiếp cận này nhưng không thành công ... Tôi đã một lớp: public class MyDialogFragment extends DialogFragment {

DialogFragment không phải là lớp con của Ngữ cảnh, vì vậy bạn eed để có quyền truy cập vào một tài khoản hợp lệ (như hoạt động của bạn). Sử dụng điều này:

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

Hoặc như bạn phát hiện ra bạn có thể sử dụng Hoạt động thông qua vào onAttach(), nhưng hiểu bạn có thể làm bất cứ nơi nào này bên trong một Fragment miễn là bạn có một bối cảnh hợp lệ để làm việc với.

+0

Tôi đã thử cách tiếp cận này nhưng không thành công ... nhưng bây giờ tôi biết mình đã làm gì sai: Tôi có một lớp: 'lớp công khai MyDialogFragment mở rộng DialogFragment {' và bên trong lớp này tôi đã làm: riêng tư Chuỗi xbtAffirmativeLabel = getString (android.R.string.cancel); và đây là vấn đề, tôi chỉ có thể làm điều đó bên trong một phương thức như: public void onAttach (Activity activity) {cảm ơn vì sự hỗ trợ của bạn đã giúp tôi nhận ra điều đó. – HugoXP

0

Điều này sẽ chuyển đổi mọi tài nguyên Android thành chuỗi. Trong ví dụ này, tôi đã sử dụng ‘R.color.myColor’ nhưng nó sẽ hoạt động với bất kỳ loại tài nguyên Android nào.

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); 

Hope this helps.