コトリン移行へヤル気無くなって延び延びにしてたけど、他にやる事が無くなってきてしまい少しずつ進めようかと...。
パッチ後に新プロジェクト。
言語をコトリンにする。
フラグメントとViewModelを使いたいのでテンプレートから探す。作成!
ktファイル内容...、その内、理解できるでしょう。
リソース等は使い回ししたいのでコピペでフォルダーへ複製です。
次回はテンプレートのファイルに書き足して
スタート画面とボタンタップでフラグメントへの移動を組み込みます。
また、スクリーンの回転処理を念頭に進める方向で。
プログラム内で一時的に回転イベントを無効にしたいができないのであれば最初から回転禁止、かな?
ボタンかアクションで回転させる。もしくは全行程に回転...、イメージ沸かない。
回転イベント発生で全て破棄して回転後のアクティビティを作り直すらしい。
必要なデータを保存しておいて作り直しの時に読み込んで反映させる。
文字だと簡単だけど、実証で確認していくしかない。あぁ~面倒くさ。
テンプレートで排出されたソース。
【MainActivity.kt】
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example./* パッケージ名 */.ui.main.MainFragment
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (savedInstanceState == null) {
supportFragmentManager.beginTransaction()
.replace(R.id.container, MainFragment.newInstance())
.commitNow()
}
}
}
【MainFragment.kt】
import androidx.lifecycle.ViewModelProvider
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example./* パッケージ名 */.R
class MainFragment : Fragment() {
companion object {
fun newInstance() = MainFragment()
}
private lateinit var viewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this).get(MainViewModel::class.java)
// TODO: Use the ViewModel
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return inflater.inflate(R.layout.fragment_main, container, false)
}
}