Android用getString值初始化一个String []?
Posted
技术标签:
【中文标题】Android用getString值初始化一个String []?【英文标题】:Android Initializing a String[] with getString values? 【发布时间】:2016-05-08 15:57:16 【问题描述】:我正在尝试在 android 中创建一个字符串数组...这可行:
String titles[] = "Matches", "Players" ;
这不是:
String titles[] = getString(R.string.matches), getString(R.string.players) ;
我该如何做我想做的事?
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.res.Resources android.content.Context.getResources()”
【问题讨论】:
我们需要更多的上下文。在您执行此操作时,是否有完整构造的Activity
或 Context
实例可用?
请edit您的帖子包含更多详细信息,例如您看到的确切错误。
添加了错误...不管我是否把它放在上下文之后...仍然是同样的错误。
【参考方案1】:
您可能正在尝试将您的 String[]
初始化为一个类字段,这是不允许的,因为您还不能访问资源,如异常所示。
将分配移动到您的 onCreate
方法中,它将起作用。
private String[] titles;
@Override
protected void onCreate(Bundle savedInstanceState)
....
titles = new String[] getString(R.string.matches), getString(R.string.players) ;
....
【讨论】:
【参考方案2】:试试这个:
String titles[] = getResources().getString(R.string.matches), getResources().getString(R.string.players) ;
【讨论】:
以上是关于Android用getString值初始化一个String []?的主要内容,如果未能解决你的问题,请参考以下文章
android.content.Context.getString 中的 NPE 导致应用程序在启动时崩溃
android用 MPAndroidChart空间生成曲线,怎么更改初始放大倍数?初始刻度值?