Java 如何在非活动类中获取字符串?
我是android应用程序开发新手。我确实发现了与我的问题相关的问题,但没有一个能提供正确的解决方案。 这是我试图获取字符串的代码。我犯了这样的错误 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getString(int)” 在代码中Java 如何在非活动类中获取字符串?,java,android,Java,Android,我是android应用程序开发新手。我确实发现了与我的问题相关的问题,但没有一个能提供正确的解决方案。 这是我试图获取字符串的代码。我犯了这样的错误 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getString(int)” 在代码中 str.append(_context.getString(R.string.Min)); 请换成 str.append(_con
str.append(_context.getString(R.string.Min));
请换成
str.append(_context.getResources().getString(R.string.Min));
您遇到的问题是
\u context
上的NullPointerException
我认为这是因为您已将\u context
声明为static
变量,并将convertTimeToHoursMinuteString
声明为static
方法
但是您正在构造函数中初始化\u上下文
public CommonUtils(Context context) {
this._context = context;
}
但是由于该方法是静态的,所以您不会创建一个对象来调用它。相反,您可以通过类名直接调用它,比如CommonUtils.convertTimeToHoursMinuteString
。因此构造函数永远不会被调用,因此\u context
为空
如果你想让它保持静止,你可以这样做
public static String convertTimeToHoursMinutesString(Context _context, long lTimeinMillis){
// Calculate hours first.
long hours = TimeUnit.MILLISECONDS.toHours(lTimeinMillis);
lTimeinMillis -= TimeUnit.HOURS.toMillis(hours);
// Calculate minutes then.
long minutes = TimeUnit.MILLISECONDS.toMinutes(lTimeinMillis);
lTimeinMillis -= TimeUnit.MINUTES.toMillis(minutes);
// Calculate seconds last.
//long seconds = TimeUnit.MILLISECONDS.toSeconds(lTimeinMillis);
StringBuilder str = new StringBuilder(64);
str.append(hours);
str.append(_context.getString(R.string.Hour));
str.append(minutes);
str.append(_context.getString(R.string.Min));
//str.append(seconds);
//str.append(" Seconds");
return(str.toString());
}
您还可以访问getString()
像context.getResources().getString(R.string.YOUR\u string)代码>这是否回答了您的问题?其中是您调用的代码getString()
?你在哪一行得到这个异常?不。它只支持系统资源。我有string.xml,我需要在我的类中得到这个字符串@leopalI已经编辑了代码。请看一下@gprathous是否有任何方法可以通过使用(R.string.thatvalue)初始化字符串数组???@JasmineAntony检查一下,它可能会对您有所帮助。我想在我的枚举类中初始化,例如公共枚举工作状态枚举{WORK_EMPTY_CAR(000,“WORK_EMPTY_CAR”,R.string.xyz);}@JasmineAntony首先尝试一下,如果遇到任何问题,首先尝试理解它并自己解决,如果它不起作用,那么你可以在这里发布一个新问题。嗨,我收到NullPointerException(尝试在空对象引用上调用虚拟方法“android.content.res.Resources android.content.Context.getResources()”)
public static String convertTimeToHoursMinutesString(Context _context, long lTimeinMillis){
// Calculate hours first.
long hours = TimeUnit.MILLISECONDS.toHours(lTimeinMillis);
lTimeinMillis -= TimeUnit.HOURS.toMillis(hours);
// Calculate minutes then.
long minutes = TimeUnit.MILLISECONDS.toMinutes(lTimeinMillis);
lTimeinMillis -= TimeUnit.MINUTES.toMillis(minutes);
// Calculate seconds last.
//long seconds = TimeUnit.MILLISECONDS.toSeconds(lTimeinMillis);
StringBuilder str = new StringBuilder(64);
str.append(hours);
str.append(_context.getString(R.string.Hour));
str.append(minutes);
str.append(_context.getString(R.string.Min));
//str.append(seconds);
//str.append(" Seconds");
return(str.toString());
}