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
   }

}

今は試していませんが、問題を明確に理解していない限り、これが機能しない理由はわかりません:)

補足として。アクティビティのライフサイクル、基本的にどのイベント (onCreate、onResume、onStart、onDestroy、...) がいつ発生するかも確認する必要があります。Android Developersから引用した次の図は、それを最もよく説明しています。 ここに画像の説明を入力

于 2011-01-30T17:18:19.457 に答える