私は、抽象的な基底クラスを作成して1か所にナビゲーション引出しコードを作成し、起動アクティビティを開始するために私のアプリケーションタイトルにonClickListener
を実装したいと考えています。抽象基底クラスのアクティビティコンテキストを取得する
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.toolbar_title:
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
return;
}
}
アプリが正常に動作しますが、私は1つが新たな活動を開始するためにアプリケーション・コンテキストを使用してはならないことをどこかで読ん:
私は、次のコードを使用しています。しかし、アンドロイド・スタジオでは、getApplicationContext
とgetBaseContext
以外の文脈を使用することはできません。
どのコンテキストを使用する必要がありますか?
ねえ、1つの質問:基本クラスの 'this'は、現在実行中のアクティビティのコンテキストを参照しますか? 'this'や' MyBaseActivity.this'の出力と同様に、(derived)アクティビティでgetContextを呼び出すのと同じでしょうか? – sudshekhar
@sudshekhar 'getContext()'のようなものは何もありません。しかし、「これは常にオブジェクトのインスタンスを指します。これはちょうどあなたの実行中の活動です。 – tynn