2011-01-30 4 views
2

私は1つのアイテムを持つアプリケーションでメニューを作ろうとしていました。このメニュー項目をクリックすると、別のアクティビティに移動します。だから、基本的には、そのメニュー項目をクリックさせてサブアクティビティを開始しています。Androidでパブリックインテントを作成する

問題は、私は私の主な活動のonCreate()方法で私の意図を指定する必要があることここにあるが、私はonCreate()法の外にある私のonOptionItemSelected()方法で、この意図を必要とします。私はこれをどのようにして行うのですか? 私の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

うーん...私は今それを試していなかったプライベートクラス変数を宣言し

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から取った次の図は、それを最もよく説明しています: enter image description here

楽しいです!

+0

:)理解できないことは、onOptionsItemSelectedではなくonCreateにIntentを作成することです。 – Juri

+0

ちょうど 'onOptionsItemSelected'でインテントを直接作成しようとしましたが、うまくいきました。それは意味があります...もう一度、私はそのgngを知っていました私は最近、アンドロイドの開発を開始し、私はかなり大きなnoobそれを...明確に.. :) – Urban

関連する問題