2

所以我试图在一个只有一个项目的应用程序中制作一个菜单。单击此菜单项会将您带到另一个活动。所以基本上我正在开始一个关于点击该菜单项的子活动。

问题出在这里,我必须在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方法之外的意图?

4

1 回答 1

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对它的描述最好: 在此处输入图像描述

于 2011-01-30T17:18:19.457 回答