如何通过覆盖 onResume()来调用getIntExtra?
错误的代码如下:
@Override
protected void onResume()
{
super.onResume();
setDDL_Selected(0);
setDDL_Selected(Intent.getIntExtra("DDL_ID", 0));
}
编译器抛出以下错误:
非静态方法getIntExtra(java.lang.String,int)不能 从静态上下文引用?
答案 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 的地方?