package jp.mixi.sample.di.ui; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import jp.mixi.sample.di.R; import jp.mixi.sample.di.ui.helper.OptionsItemSelectionHandler; import proton.inject.activity.ProtonActivity; import javax.inject.Inject; public class MainActivity extends ProtonActivity { // @Inject アノテーションを付与したものに対して、オブジェクトが自動で注入されるので // このコード上で具象クラスを new する必要がない。 // これによって、このクラスと具象クラスの依存関係がなくなり、インタフェースへと依存することになることで // コンポーネントの差し替えが容易に行えるようになる @Inject private OptionsItemSelectionHandler mOptionsMenuHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (mOptionsMenuHandler.handle(item)) { return true; } return super.onOptionsItemSelected(item); } }