我不能在 Android 中使用 getResource().getString

I can´t use getResource().getString in Android

我正在覆盖 returns 一个 CharSequence 和它 returns charSequecence 的方法。 我也试过返回一个字符串。这是代码

public String getPageTitle(int position) {
    return  getResource().getString(R.string.tabla_del) + ": " + (position + 1);
}

一般来说,失败的原因有以下三个:

第一个,不存在上下文。解决这个问题,您需要将上下文对象传递给使用它的方法:

public String getPageTitle(Context context, int position) {
    return  context.getResource().getString(R.string.tabla_del) + ": " + (position + 1);
}

上下文变量是从 Activity/Fragment 传递的,但如果方法存在于 Activity/Fragment 中,则可以避免它;只需要 getContext()getApplicationContext() 方法取决于它是 Activity 还是 Fragment.

public String getPageTitle(int position) {
    return  getContext().getResource().getString(R.string.tabla_del) + ": " + (position + 1);
}

第二个,不存在Rclass导入。您应该检查您的 class 是否存在于子包中,例如: 您的主包是 com.example.androidapp,它在 AndroidManifest 和 gradle 文件中有描述。因此,如果您的 class 存在于 com.example.androidapp.configuration 上,您需要从主包导入 R class:

package com.example.androidapp.configuration
...
import com.example.androidapp.R;
...
public class Configuration {
    ...
}

第三个,字符串文件中不存在您需要的字符串。在这里你应该创建一个字符串文件并添加你需要的字符串。

试试下面的代码:

public String getPageTitle(int position) {
    return this.getResources().getString(R.string.tabla_del)+ ": " + (position + 1);
}

public String getPageTitle(int position) {
    return context.getResources().getString(R.string.tabla_del)+ ": " + (position + 1);
}