所以我试图在一个包含单个项目的应用程序中创建一个菜单。单击此菜单项将转到另一个活动。所以基本上我开始点击该菜单项的子活动。
问题在于我必须在我的主要活动的onCreate()
方法中指定我的意图,但我需要在onOptionItemSelected()
方法中使用onCreate()
方法之外的意图。我该怎么做呢?
我的onCreate()方法:
public void onCreate(Bundle savedInstanceState) {
Intent myIntent=new Intent(mainActivity.this,secondActivityt.class);
}
我的onOptionsItemSelected()方法:
public boolean onOptionsItemSelected(MenuItem item){
if(item.getItemId()==R.id.aboutbtn){
startActivity(myIntent);
}
所以我在这里无法访问myIntent
。无论如何我可以在onCreate
方法之外声明意图并仍然使程序工作,或者无论如何我可以在onCreate
方法之外访问意图吗?
答案 0 :(得分:4)
应该非常简单,只需声明一个私有类变量并将您的意图存储在
中public class MyActivity extends Activity{
private Intent myIntent;
public void onCreate(...){
...
myIntent = new Intent(...);
}
public boolean onOptionsItemSelected(MenuItem item){
...
//use the myIntent here
}
}
我现在没有尝试过,但我认为没有任何理由不这样做,除非我不清楚你的问题:)
正如旁注。您可能还应该查看Activity生命周期,基本上是哪个事件(onCreate,onResume,onStart,onDestroy,...)被触发。摘自Android Developers的下图最佳描述: