diff --git a/app/src/main/java/keijumt/todoapp/MainActivity.kt b/app/src/main/java/keijumt/todoapp/MainActivity.kt index 82cf3bd..6476b18 100644 --- a/app/src/main/java/keijumt/todoapp/MainActivity.kt +++ b/app/src/main/java/keijumt/todoapp/MainActivity.kt @@ -1,17 +1,30 @@ package keijumt.todoapp +import android.arch.lifecycle.ViewModelProviders +import android.databinding.DataBindingUtil import android.os.Bundle import android.support.v4.app.Fragment import dagger.android.AndroidInjector import dagger.android.support.HasSupportFragmentInjector import keijumt.todoapp.activity.BaseActivity +import keijumt.todoapp.databinding.ActivityMainBinding import keijumt.todoapp.di.Injectable +import keijumt.todoapp.viewmodel.MainViewModel +/** + * メイン画面のActivity + * Created by matsumoto_k on 2018/03/06. + */ class MainActivity : BaseActivity(), HasSupportFragmentInjector, Injectable { + lateinit var binding: ActivityMainBinding + lateinit var mainViewModel: MainViewModel + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + binding = DataBindingUtil.setContentView(this, R.layout.activity_main) + mainViewModel = ViewModelProviders.of(this, viewModelFactory).get(MainViewModel::class.java) + lifecycle.addObserver(mainViewModel) } override fun supportFragmentInjector(): AndroidInjector { diff --git a/app/src/main/java/keijumt/todoapp/viewmodel/BaseViewModel.kt b/app/src/main/java/keijumt/todoapp/viewmodel/BaseViewModel.kt new file mode 100644 index 0000000..dcad4c4 --- /dev/null +++ b/app/src/main/java/keijumt/todoapp/viewmodel/BaseViewModel.kt @@ -0,0 +1,36 @@ +package keijumt.todoapp.viewmodel + +import android.arch.lifecycle.Lifecycle +import android.arch.lifecycle.LifecycleObserver +import android.arch.lifecycle.OnLifecycleEvent +import android.arch.lifecycle.ViewModel + +/** + * ViewModelの基底クラス + * Created by matsumoto_k on 2018/03/06. + */ +abstract class BaseViewModel : ViewModel(), LifecycleObserver { + @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) + open fun onCreate() { + } + + @OnLifecycleEvent(Lifecycle.Event.ON_START) + open fun onStart() { + } + + @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) + open fun onResume() { + } + + @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) + open fun onPause() { + } + + @OnLifecycleEvent(Lifecycle.Event.ON_STOP) + open fun onStop() { + } + + @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) + open fun onDestroy() { + } +} \ No newline at end of file diff --git a/app/src/main/java/keijumt/todoapp/viewmodel/MainViewModel.kt b/app/src/main/java/keijumt/todoapp/viewmodel/MainViewModel.kt index 2e2ac3c..5106bde 100644 --- a/app/src/main/java/keijumt/todoapp/viewmodel/MainViewModel.kt +++ b/app/src/main/java/keijumt/todoapp/viewmodel/MainViewModel.kt @@ -1,11 +1,10 @@ package keijumt.todoapp.viewmodel -import android.arch.lifecycle.LifecycleObserver -import android.arch.lifecycle.ViewModel import javax.inject.Inject /** + * メイン画面のViewModel * Created by matsumoto_k on 2018/03/06. */ -class MainViewModel @Inject constructor() : ViewModel(), LifecycleObserver { +class MainViewModel @Inject constructor() : BaseViewModel() { } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index ae843ab..25ca29b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,16 @@ - + - \ No newline at end of file + + + + + + + + + \ No newline at end of file