2013-01-01 73 views

Trả lời

4

Từ việc sử dụng đoạn:

getActivity().getString(...) 

Từ việc sử dụng bộ chuyển đổi:

getContext().getResources().getString(...) 

Có, bạn cần một bối cảnh để truy cập tài nguyên.

+3

Lưu ý rằng 'getActivity()' sẽ là null cho đến khi 'onActivityCreated()' được gọi. – dmon

+0

cảm ơn, nhưng tiếc là tôi đang ở trong một FragmentPagerAdapter, không phải là một Fragment! –

+0

sử dụng getContext() như vậy và nếu bạn không có quyền truy cập vào một ngữ cảnh, hãy vượt qua nó. – Snicolas

2

Tôi gặp sự cố tương tự. Từ một bố cục ngăn kéo, tôi muốn quyết định phân đoạn nào sẽ sử dụng trong một phương thức được gọi là từ một lớp trợ giúp.

Vì vậy, trong onCreateView ...

String form = getResources().getStringArray(R.array.drawer_array)[i]; 
     Context context = getActivity().getApplicationContext(); 

     FragmentHelper fh = new FragmentHelper(); 
     int myFragment = fh.getCurrentFragment(form,context); 

Và trong FragmentHelper công cộng() ...

public int getCurrentFragment(String form, Context context){ 
       ... 
       context.getResources().getString(R.string.label_item1); 
       ... 
    } 

Bí quyết là để thêm bối cảnh trước getResources(). Nếu không, ngăn xếp của tôi cho thấy rằng đoạn không được đính kèm với một hoạt động.

Hy vọng điều này sẽ giúp ai đó.

Các vấn đề liên quan