こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

無名クラスからのstartActivity

androidの勉強をしております。
無名クラス内からIntentのコンストラクタに渡す引数がthisでは不十分なのはどうしてですか?
以下がソース例です。


public class HelloAndroid extends Activity{

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(HelloAndroid.this, HA2.class);
startActivity(intent);
}
});
}
}

投稿日時 - 2012-02-26 21:45:04

QNo.7329191

暇なときに回答ください

質問者が選んだベストアンサー

何故new Intent(this, HA2.class)と書いてはいけないかという事ですよね?
ネストクラス内からthisを参照するとそれはネストクラスのインスタンス自身を指します。
なのでこの場合にthisと書くとそれはOnClickListenerを実装した匿名クラスのインスタンス自身を指しアウタークラスの事ではありません。

アウタークラスのthisを参照する場合は既にソースコードにあるように「アウタークラス.this」と書きます。

投稿日時 - 2012-02-27 10:38:38

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問