【问题标题】:Error:(64, 72) error: non-static method getString(int)错误:(64, 72) 错误:非静态方法 getString(int)
【发布时间】:2016-01-28 21:25:22
【问题描述】:

怎么了? 我正在尝试提取 strings.xml 中使用的字符串 但我得到错误:

Error:(64, 72) error: non-static method getString(int) cannot be referenced from a static context

代码:

private static String file_url  = "http://xxxx.yy/" + getString(R.string.next_update_id);

【问题讨论】:

标签: java android


【解决方案1】:

创建扩展应用程序的类 MyApplication。实现单例:

private static MyApplication instance;

public static MyApplication getInstance() {
     return instance;
}

public void onCreate() {
        instance = this;
}

然后使用MyApplication.getInstance().getString(R.string.next_update_id)

希望对你有帮助!!!

【讨论】:

  • 再次出错。错误:不能从静态上下文引用非静态方法 getResources(int)
【解决方案2】:

您收到的消息已经是答案:getString 是一种非静态方法,您正尝试在静态上下文中使用它。这里的“静态上下文”是指定义一个静态变量。

private static String file_url 

您可以通过从成员声明中删除 static 修饰符来解决此问题。

【讨论】:

    【解决方案3】:

    简单修复

        private static String file_url;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // Add only this
            file_url = "http://xxxx.yy/" + getString(R.string.next_update_id);
    }
    

    【讨论】:

    • @cricket_007 当前接受的答案没有错。我扩展了它。添加修复它的简单方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2019-12-02
    • 2022-01-22
    • 1970-01-01
    • 2021-01-14
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多