2016-09-20 8 views
-1

対この差(例えば)いくつかのMainActivityから新しい意図を開始差異が使用しているもの:インテントを正しく開始する。 MainActivity.this

Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
+4

これはあなたの活動の現在のコンテキストとみなされます。しかし、ボタンクリックリスナーを実装するときは、このキーワードの有効性名を書くために、このスコープが利用できない匿名クラスに行きます。 –

+0

OPは、コンテキストが何であるかを詳しく知る必要があるようです。 (これは)多くの開発者を混乱させることが知られています! – Eenvincible

+0

http://stackoverflow.com/questions/22966601/what-is-different-between-mainactivity-this-vs-getapplicationcontext –

答えて

3

Intent intent = new Intent(this, SecondActivity.class); 

を目的の作業に差はありませんが、我々はこれらの2つのステートメントを異なる状況で使用する。 packageContextに、我々はコンテキストを渡す必要が

Intent intent = new Intent(Context packageContext, Class<?> cls); 

は、実際に新しいアクティビティを開始するために、我々は意図を使用しています。だからこそ、私たちは現在の活動の文脈として「これ」を渡すのです。

しかし、匿名のonClickListenerのようないくつかのアノニマスクラスから同じことを行うと、このアノニマスクラスのインスタンスが参照されます。その場合、MainActivityクラスのコンテキストである 'MainActivity.this'を使用します。

関連する問題