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

时间:2013-12-19 11:08:20

标签: java android android-intent

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

错误的代码如下:

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

编译器抛出以下错误:

  

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

3 个答案:

答案 0 :(得分:5)

使用:

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

所有Activity都有getIntent()方法,该方法将返回用于启动Intent的{​​{1}}。通过调用Activity,您将获得getIntent()的实例,并且可以在其上调用非静态方法

答案 1 :(得分:3)

您不能在类对象上调用方法getIntExtra,您需要intent实例。您可以通过Activity.getIntent()

获取

答案 2 :(得分:1)

我知道你有答案,但你不必在任何地方都使用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 的地方?