2014-11-01 48 views
2

此代码工作正常,但我想通过使用资源文件中的数组来初始化此列表。java中给出错误的字符串数组

private String[] data = { "Selection 1", "Selection 2", "Selection 3" }; 

此代码从this链接,但它不适合我。它在片段内,所以我甚至在getResources()之前加了getActivity(),但仍然给出了错误。错误表示它是由该片段膨胀引起的。当我用上面的代码片段替换这一行时,它工作正常。

Resources res = getResources(); 
private String[] data = res.getStringArray(R.array.sort_by); 

注:这是baseAdapter和底座适配器里面像我有如下那baseadapter是我的片段中。

private SpinnerAdapter SortBySpinnerAdapter = new BaseAdapter() { 

    private TextView text; 
    Resources res = getActivity().getResources(); 
    private String[] data = res.getStringArray(R.array.sort_by); 
    private int count = 2; 
    ... 
+2

请给出确切* *错误。这是编译时错误吗?执行时异常? – 2014-11-01 08:17:25

+1

Yawar,你究竟在哪里调用getResources和getStringArray?这是在onCreate?错误和更多代码的完整堆栈跟踪可能有助于解决您的问题。 – 2014-11-01 08:26:00

+0

糟糕,我在做什么愚蠢的错误,我忘了我必须在onCreate初始化,谢谢你的提示。 – Yawar 2014-11-01 08:32:27

回答

1

移动初始化部分在OnCreate

private SpinnerAdapter SortBySpinnerAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    SortBySpinnerAdapter = new BaseAdapter() 
    { 
     private TextView text; 
     Resources res = getActivity().getResources(); 
     private String[] data = res.getStringArray(R.array.sort_by); 
     private int count = 2; 

如果做初始化出来的OnCreate中的,尚未创建/提供活动

+0

无需在onCreate中移动整个适配器,只需移动数据变量的初始化即可解决我的问题。 – Yawar 2014-11-01 08:58:05

相关问题