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()”

【问题讨论】:

我们需要更多的上下文。在您执行此操作时,是否有完整构造的 ActivityContext 实例可用? 请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 活动时出错

android.content.Context.getString 中的 NPE 导致应用程序在启动时崩溃

resultSet.getString() 为空值返回啥

android用 MPAndroidChart空间生成曲线,怎么更改初始放大倍数?初始刻度值?

Android java,使用getString()从string.xml导入字符串时出错

ResultSet的getInt(),getString()方法