Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在非活动类中获取字符串?_Java_Android - Fatal编程技术网

Java 如何在非活动类中获取字符串?

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

我是android应用程序开发新手。我确实发现了与我的问题相关的问题,但没有一个能提供正确的解决方案。 这是我试图获取字符串的代码。我犯了这样的错误

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Context.getString(int)”

在代码中

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());
}