当前位置: 首页 > 知识库问答 >
问题:

不能从静态上下文引用非静态方法getIntExtra(java.lang.String,int)?

靳富
2023-03-14

如何通过覆盖onResume()来调用getIntExtra?

错误代码如下:

@Override
protected void onResume()
{
     super.onResume();
     setDDL_Selected(0);
     setDDL_Selected(Intent.getIntExtra("DDL_ID", 0));
}

编译器抛出以下错误:

不能从静态上下文引用非静态方法getIntExtra(java.lang.String,int)?

共有3个答案

梅跃
2023-03-14

我知道您有答案,但您不必在任何地方都使用getIntent(),最佳实践是创建Intent变量并在onCreate方法中初始化它,然后您可以在活动中的任何地方使用它。

Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layoutname);
    intent=getIntent();
}  

现在像这样使用它:

setDDL_Selected(intent.getIntExtra("DDL_ID", 0));

也许这是你以前遇到过Intent.getIntExtra的地方?

蒋烨然
2023-03-14

您不能在类对象上调用方法获取IntExtra,您需要意图实例。你可以通过活动获得它。

司马自明
2023-03-14

使用:

getIntent().getIntExtra("DDL_ID", 0));

所有活动都有一个 getIntent() 方法,该方法将返回用于启动活动的意图。通过调用 getIntent(), 您可以获得一个意图的实例,并且可以对它们调用非静态方法

 类似资料:
  • 刚刚安装了POI3.8 JAR并更改了代码...我得到了这个错误: 不能从静态上下文引用非静态方法getFormat(java.lang.String

  • 问题内容: 我想一劳永逸地理解这一点。 为此,请原谅下面粘贴的大量代码,但是我不想遗漏任何细节。 我唯一更改的是加载的URL。但这不会导致错误。 我想将我的函数称为“ readPosiitons ”。简单的解决方案,使其静态。真正的解决方案,我不确定。 请帮助我更好地了解如何以正确的方式解决此错误。 谢谢!! 问题答案: 真正的解决方案?不要在方法中放太多东西。那是给菜鸟的。 Java是一种面向对

  • 所以我尝试绑定我的Numpad键,以便在计算器应用程序中使用它们,但当我尝试从主窗口以字符串形式发送keyEvent时。java到我的MainWindowController公共void方法它给了我一个错误“不能从静态上下文引用非静态方法”,即使我的类都不是静态的?以下是主窗口代码: } 这里是MainWindowController文件(看keyPress方法)

  • 我想更改FrameLayout的背景。这是我现在使用的代码: 但出现以下错误: 无法从静态上下文引用非静态方法“setBackground(android.graphics.drawable.drawable)”。 怎么了?

  • 我从这行中得到了“无法从静态上下文引用非静态方法”错误:

  • mainactivity.java: xmlReader.java: (如果需要,我也可以为station.java和dbhandler.java添加代码) 我怎样才能绕过这个编程悖论呢?我通常能为这里的任何问题找到答案,但这是我第一次找不到答案。如果你知道我错过的解决方案的链接,请在下面发布。多谢。