2013-11-01 75 views
1

此代码中是否存在任何问题?活动构造函数中的最终字段初始化

public class MyActivity extends Activity { 
    private final String[] names; 

    public MyActivity() { 
     names = new String[]{ 
      getString(R.string.strion_one), 
      getString(R.string.string_two), 
      getString(R.string.string_three), 
     }; 
    }  

    ... 

} 
+0

在'onCreate'中初始化它不要创建活动类的构造函数 – Raghunandan

+0

但是如果我想要最终的恶魔呢? – TpoM6oH

+1

当使用'getString()'获取其成员时,不要使用final –

回答

2

如果我正确理解您的问题,您尝试创建一个类,其中包含资源上的链接。所以我建议你创建一个包含你的资源链接的类。

public class MyResources{ 

    private final String[] myStrings; 
    public MyResources(Context context) 
    { 
     myStrings = new String[]{}; 
     myStrings[0] = context.getResources().getString(R.string.string_one); 
     myStrings[100] = context.getResources().getString(R.string.string_one_hun); 
    } 

    public String getStringAtNumber(int value) 
    { 
     return myStrings[0]; 
    } 
} 

是的!还有一件事。仅在执行onCreate之后才能获取资源。